根据列表批量重命名文件(Windows)

最近遇到一个需求,需要根据一个列表将文件批量重命名,比如:

有一个文件夹,里面的文件是1.jpg, 2.jpg, 3.jpg, …, 99.jpg,需要将它们重命名成tom.jpg, jerry.jpg, lucy.jpg, …, lili.jpg,而新的文件名单独整理在一个txt文件中。

话不多说,上代码:

# # define some vars: # $myDir2Handle = "folder" $myFilesList = "names.txt" # # get files list in dir subdir2handle: # $xarr = (Get-ChildItem $myDir2Handle).name $nx = $xarr.length # # get list file content in another array: # $yarr = Get-Content $myFilesList $ny = $yarr.length #$yarr[0] #exit(0); # # get minimum of the 2 lengths: # $nMin = [math]::min($nx, $ny) # # rename items: # for($i = 0; $i -lt $nMin; $i++) { Write-Host Rename $xarr[$i] Move-Item ($myDir2Handle + "/" + $xarr[$i]) ($myDir2Handle + "/" + $yarr[$i]) }
Code language: PowerShell (powershell)

新建一个文件,命名为rename.txt,将上述代码粘贴进去后,重命名为rename.ps1。

将新文件名保存到同目录的names.txt中,一行一个。

在同目录新建一个folder文件夹,将需要重命名的文件放进去。

右击rename.ps1,选择“使用PowerShell运行”即可。

%d 博主赞过: