尝试重命名文件时出错

时间:2016-09-05 09:58:10

标签: powershell

我在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 '-'

2 个答案:

答案 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))

从经验来看,这总是有效的。