我正在嘗試使用逗號分隔值重命名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中的記錄示例。 –