这些是我的原始文件名:
AAA.pdf
BCC.pdf
CCC.pdf
DDD.pdf
等...
我希望我的脚本通过添加带有递增数字的前缀来修改文件的名称,并在最后保留原始文件名:
文件1 - AAA.pdf
文件2 - BBB.pdf
文件3 - CCC.pdf
文件4 - DDD.pdf
等...
我如何在Powershell上解决这个问题?
这是我到目前为止所尝试的内容:
我首先导航到文件所在的路径。
$count=1;
dir | %{rename-item $_-newname ("Document {0} - {1}" -f $count++, $_.name)}
问题:
rename-item:无法重命名,因为“AAA.pdf-newname”中的项目不存在。
答案 0 :(得分:1)
我将假设您遇到的“问题”是由于无法找到文件而导致的错误。您应该使用循环中文件的完整路径。您还需要值和参数$_-newname
之间的空格。
$count=1;
dir "c:\temp" | %{rename-item $_.FullName -newname ("Document {0} - {1}" -f $count++, $_.name)}
但是你可以稍微更新这段代码,直到你不需要foreach循环或需要指定输入文件,而是直接使用管道。
$count=1;
dir "c:\temp" | rename-item -newname {"Document {0} - {1}" -f $count++, $_.name}
答案 1 :(得分:0)
这会使用更多行,但我相信它是你所追求的。假设文件位于子目录"文件"。
中$files = Get-ChildItem "$PSScriptRoot\files"
$i = 1
foreach ($file in $files){
$newname = "Document $i - " + $file
Rename-Item $($file.FullName) $newname
$i++
}