我在C:\Users\xxx\Documents\Projects\files\old\
文件夹中有文件。我已经构建了一个循环来重命名它们,但它没有成功:
$newfiles = "C:\Users\xxx\Documents\Projects\files\new\"
Rename-Item -Path $file.FullName -NewName $newfiles+"$($entry.Custom_ID).$($file.BaseName).PDF"
如何正确地将$newfiles
连接到重命名路径?我尝试了一切,但不断出错:
Rename-Item : A positional parameter cannot be found that accepts argument '-'
答案 0 :(得分:1)
您需要复制和重命名或移动和重命名文件。使用-whatif
是一种很好的做法,因为它会向您显示执行特定命令时会发生什么。
另请注意,我使用get-childitem
过滤器只获取pdf
文件,以便我知道我要重命名的文件只是pdf文件。当然,如果oldfiles文件夹只包含pdf文件,那么你不需要使用过滤器。
$newfiles = "C:\Users\xxx\Documents\Projects\files\new\"
$oldfiles = "C:\Users\xxx\Documents\Projects\files\old\"
Get-ChildItem -Path $oldfiles -Filter *.pdf |
Move-Item -Destination {Join-Path -Path $newfiles -ChildPath "$($entry.Custom_ID).$($_.BaseName).pdf"} -WhatIf
或
Get-ChildItem -Path $oldfiles -Filter *.pdf |
copy-Item -Destination {Join-Path -Path $newfiles -ChildPath "$($entry.Custom_ID).$($_.BaseName).pdf"} -WhatIf
答案 1 :(得分:0)
这就是我总是在Powershell中连接的东西:
$newfiles = "C:\Users\xxx\Documents\Projects\files\new\"
Rename-Item -Path $file.FullName -NewName ("{0}{1}.PDF" -f $newfiles,$($entry.Custom_ID).$($file.BaseName))
从经验来看,这总是有效的。