无法将参数绑定到参数“NewName”,因为它是空字符串

问题描述 投票:0回答: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 的最后一个示例中找到的代码完全相同。

powershell powershell-2.0 rename-item-cmdlet
1个回答
3
投票
要么不要使用

-Name

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

Get-ChildItem -Name *.txt | Rename-Item -NewName { $_ -replace '\.txt','.log' }
    
© www.soinside.com 2019 - 2024. All rights reserved.