1
Get-ChildItem -Name *.txt | Rename-Item -NewName { $_.name -replace '\.txt','.log' }

我的当前路径中有 3 个文本文件,我正在使用在最后一个示例中找到的这段代码...

get-help rename-item -full

(Powershell 2.0 版)。无论出于何种原因,我一直收到以下错误:

Rename-Item : Cannot bind argument to parameter 'NewName' because it is an empty string.
At line:1 char:40
+ Get-ChildItem -Name *.txt | Rename-Item <<<<  -NewName { $_.name -replace 
'\.txt','.log' }
+ CategoryInfo          : InvalidData: (testfile3.txt:PSObject) [Rename-Item], 
ParameterBindingValidationException
+ FullyQualifiedErrorId : 
ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.Rena
meItemCommand

显然,我将 .txt 更改为 .log 的表格不是空字符串,这与 Microsoft 的最后一个 cmdlet rename-item 示例中的代码完全相同。

4

1 回答 1

3

要么不使用-Name参数,因为它只输出包含完整路径的字符串,要么不引用Name属性:

Get-ChildItem -Name *.txt | Rename-Item -NewName { $_ -replace '\.txt','.log' }
于 2014-09-15T01:26:43.027 回答