調用此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") }
看到http://stackoverflow.com/a/21614001/8479 – Rory