我正在尝试使用逗号分隔值重命名PDF文件。当所有我的PDF文件是一个文件夹中,下面的脚本工作:使用if()重命名子文件夹中的文件
$myHeader = echo fileName newName
Import-Csv $PSScriptRoot\list_names.txt -Header $myHeader | foreach {
if (Test-Path -Path $PSScriptRoot\*.pdf) {
Rename-Item $_.fileName $_.newName
}
}
然而,重组PDF文件到子文件夹后,该脚本将不再有效,因为PDF文件的路径现在$PSScriptRoot\subfolder1\*.pdf
或$PSScriptRoot\subfolder2\*.pdf
等。
Test-Path
不适用于子文件夹,而且我也尝试使用Get-ChildItem
和其他命令更改脚本无济于事。我不知道如何解决这个脚本来处理子文件夹。
编辑:我只有CSV中的文件名。它只有两列:
"oldfilename.pdf","newfilename.pdf"
所以在你的csv中,你只有文件名还是你有文件名和子文件夹? –
是的,有一个CSV记录的例子会很有用。另外,您是否使用-Recurse开关尝试Get-ChildItem?您需要添加该开关以获取枚举的子文件夹内容。 –
@MaximeFranchot我编辑了我的问题以显示CSV中的记录示例。 –