總算發(fā)現(xiàn)PowerShell相對于CMD來說實用的地方了。
事情是這樣的,我下載了一些美?。ū福赐陼h的),通常文件名都比較長,包含了很多我不需要的信息,,比如:
復制代碼 代碼如下:
別對我撒謊.Lie.To.Me.S02E11.Chi_Eng.HDTVrip.720×396-YYeTs人人影視V2.rmvb
別對我撒謊.Lie.To.Me.S02E12.Chi_Eng.HDTVrip.720×396-YYeTs人人影視.rmvb
別對我撒謊.Lie.To.Me.S02E13.Chi_Eng.HDTVrip.720×396-YYeTs人人影視V2.rmvb
別對我撒謊.Lie.To.Me.S02E14.Chi_Eng.HDTVrip.720×396-YYeTs人人影視.rmvb
我想要的只是:
復制代碼 代碼如下:
Lie.To.Me.S02E11.rmvb
Lie.To.Me.S02E12.rmvb
Lie.To.Me.S02E13.rmvb
Lie.To.Me.S02E14.rmvb
由于我需要的文件名是原文件名中固定的一部分,于是我想到了PowerShell,先測試一下:
復制代碼 代碼如下:
foreach ($i in (dir 別*)){ Write-Host $i.Name.SubString(6, 17); }
由于這個文件夾中沒有其它“別”開頭的文件,所以我可以用(dir 別*)來列出所有我需要重命名的文件。然后對每個取它文件名的第6到23個字符:$i.Name.SubString(6, 17)
顯示出來是這樣的:
復制代碼 代碼如下:
Lie.To.Me.S02E11.
Lie.To.Me.S02E12.
Lie.To.Me.S02E13.
Lie.To.Me.S02E14.
然后再加上最后的擴展名rmvb就行了,最終的命令是這樣的:
復制代碼 代碼如下:
foreach ($i in (dir 別*)){ $i.MoveTo($i.Name.SubString(6, 17) + "rmvb"); }
小提示:PowerShell的當前路徑并不跟隨CD指令變化,在使用MoveTo之前需要先用[Environment]::CurrentDirectory = $pwd來調(diào)整當前路徑。