调用这个PowerShell命令时,出现错误让我很困扰。
如果我删除最后一部分,我会得到一个文件列表。有什么线索吗?显然我还没有掌握PowerShell。
注意:我试图将这个问题发布到超级用户,但该网站现在一直出现故障 - 不允许我添加这个确切的问题。
这是一个大大简化的例子。我甚至无法使这个经典示例工作。
Prompt> get-childitem -recurse ./ *NYCSCA* | where-object { $_.Name -like
"*NYCSCA*" } | rename-item $_ -newname $_.Name.Replace(" ","_") -whatif
以下是回复内容:
You cannot call a method on a null-valued expression.
At line:1 char:140
+ get-childitem -recurse ./ *NYCSCA* | where-object { $_.Name -like "*NYCSCA*" } | select FullName | rename-item $_ -n
ewname $_.Name.Replace <<<< (" ","_") -whatif
+ CategoryInfo : InvalidOperation: (Replace:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
如果我删除最后一部分,我会得到一个文件列表。有什么线索吗?显然我还没有掌握PowerShell。
注意:我试图将这个问题发布到超级用户,但该网站现在一直出现故障 - 不允许我添加这个确切的问题。
这是一个大大简化的例子。我甚至无法使这个经典示例工作。
gci *NYCSCA* | ren $_ ($_.Name).Replace("foo","bar")
谢谢 @JNK,%解决了问题。这是我需要的解决方案,如果你有兴趣:
gci -recurse | where-object{ $_.Name -like "*NYCSCA*"} | %{rename-item $_.FullName $_.FullName.Replace("NYCSCA","SDUSD") }