![Windows 批量重命名/替换字符串](https://linux22.com/image/1594182/Windows%20%E6%89%B9%E9%87%8F%E9%87%8D%E5%91%BD%E5%90%8D%2F%E6%9B%BF%E6%8D%A2%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
我正在尝试将文件从一种格式重命名为另一种格式。500 多个文件。目前使用 notepad++ 手动对单个文件名进行重命名。是否有任何命令或脚本,请告诉我,非常感谢您的帮助。
DB2.V12.RPT(DDG1RP01)
DB2.V12.RPT(DDG1RP02)
DB2.V12.RPT(DDG1RP03)
DB2.V12.RPT(DDG1RP04)
想要重命名为
ren DB2.V12.RPT(DDG1RP01) DDG1RP01.txt
ren DB2.V12.RPT(DDG1RP02) DDG1RP02.txt
ren DB2.V12.RPT(DDG1RP03) DDG1RP03.txt
ren DB2.V12.RPT(DDG1RP04) DDG1RP04.txt
即删除这些“DB2.V12.RPT(”和“)”并重命名为.txt文件。
答案1
您可以在 powershell 中轻松完成此操作。复制此文件并将其保存为 .ps1 文件。更改路径以匹配您拥有的内容。更改第一行以匹配文件所在的目录,然后将大约一半的 $location 变量更改为相同的内容。请注意,第一个没有尾部斜杠,但 $location 有。
#get all files in this directory
$files = Get-ChildItem("d:\tempfiles")
#Loop through each filename and rename it leaving only the value in parentheses and then adding .txt to the end
foreach ($file in $files)
{
$filename = $file.ToString()
#replace first half of filename up to first parenthese with nothing
$replace1 = $filename.Replace("DB2.V12.RPT`(" , "")
#replaces the last parenthese with .txt
$replace2 = $replace1.ToString().Replace("`)" , ".txt")
$location = "d:\tempfiles\"
$oldFilename = $location + $filename
$newFilename = $location + $replace2
Write-Host($oldFilename)
Write-Host($newFilename)
Rename-Item -Path $oldFilename -NewName $newFilename
}