好的,首先感谢nex84感谢回答我上一个问题,以及通过此链接提供意见的所有人https://superuser.com/a/1051727/569550...
我现在有一个新问题,但它与链接中的代码相同。
我创建了一个脚本,它可以从文件名中删除文本并将其替换为新文本或空白。
这在我给出的链接后面的最后一个问题中已经提到了。我添加了一个用户输入,以便用户可以输入要删除的文本和他们想要添加的文本。
我正确地删除了部分内容,但在文件名中添加新文本时遇到了麻烦。有什么建议吗...
下面的代码适用于删除,但是当重命名时,脚本会在文件名中添加“$Rename”,而不是用户输入的内容。
例如:如果用户删除了“-Layout1”但在文件名中添加了“-Model”,我们得到:
BLABLA-Layout1.pdf ==> BLABLA$Replace.pdf
代码:
CD C:\TempPDF
$Filter = Read-Host -Prompt 'Input Text To Be Removed'
$Rename = Read-Host -Prompt 'Input Text To Be Added'
Write-Host "You input server '$Filter' and '$Rename'"
Get-ChildItem -Filter "*$Filter*" -Recurse | Rename-Item -NewName {$_.name -replace "$Filter",'$Rename' }
答案1
Powershell 中的单引号仅分隔字符串值。在这种情况下,将变量 $Rename 传递给文件名时使用双引号。
Get-ChildItem -Filter "*$Filter*" -Recurse | Rename-Item -NewName {$_.name -replace "$Filter","$Rename" }