Вызов этой команды 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") }