我的桌面上有一个文件夹A, 里面可能有 1个 或 N个 txt文件, 例如:有如下文件(注:有的文件名中有空格)
流浪.txt
流浪2.txt
流浪 2.txt
流浪 2 .txt
流浪2 - 副本.txt
流浪2 - 副本 - 副本.txt
---------------------------------------------------------------------------------------------------------------
当有 1个 txt文件的时候: 只需要检查文件名是否带2, 然后将文件夹改名为 流浪2.txt
当有 N个 txt文件的时候: 先找到文件名中带2的txt文件, 然后从中删除修改时间早的文件, 留下修改时间最晚的, 最后将文件名改名为 流浪2.txt
可能还有个特殊情况: 修改时间最晚, 但相同的文件有N个, 那就只取一个,其它删除
下面的代码, 还没有添加 删除那些修改时间早的文件 和 特殊情况的处理 的代码, 请求路过高手支招, 提前感谢!- #&cls&@cd /d "%~dp0" & powershell -c "$cur_dir='%~dp0';Get-Content '%~0' | Out-String | Invoke-Expression" &pause&exit
- cd "$HOME\Desktop\A"
- $old = "流浪"
- $new = $old + "2.txt"
- #当符合条件的文件只有1个
- if ((gci $old*2*.txt).Count -eq 1)
- {
- ren (gci $old*2*.txt).fullname $new
- }
- #当符合条件的文件有N个
- if ((gci $old*2*.txt).Count -gt 1)
- {
- #Todo 删除修改时间早的文件
- #----------------------------------------
-
- #找到修改时间最晚的文件
- $f = (gci $old*2*.txt | sort LastWriteTime -Descending)[0]
-
- #将修改时间最晚的文件重命名
- ren $f.fullname $new
- }
复制代码 |