最近遇到一个需求,需要根据一个列表将文件批量重命名,比如:
有一个文件夹,里面的文件是1.jpg, 2.jpg, 3.jpg, …, 99.jpg,需要将它们重命名成tom.jpg, jerry.jpg, lucy.jpg, …, lili.jpg,而新的文件名单独整理在一个txt文件中。
话不多说,上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
$myDir2Handle = "folder" $myFilesList = "names.txt"
$xarr = (Get-ChildItem $myDir2Handle).name $nx = $xarr.length
$yarr = Get-Content $myFilesList $ny = $yarr.length
$nMin = [math]::min($nx, $ny)
for($i = 0; $i -lt $nMin; $i++) { Write-Host Rename $xarr[$i] Move-Item ($myDir2Handle + "/" + $xarr[$i]) ($myDir2Handle + "/" + $yarr[$i]) }
|
新建一个文件,命名为rename.txt,将上述代码粘贴进去后,重命名为rename.ps1。
将新文件名保存到同目录的names.txt中,一行一个。
在同目录新建一个folder文件夹,将需要重命名的文件放进去。
右击rename.ps1,选择“使用PowerShell运行”即可。