Llamar a este comando de powershell y obtener un error. Me vuelve loco.Cambiar el nombre de los archivos recursivamente en Powershell
Prompt> get-childitem -recurse ./ *NYCSCA* | where-object { $_.Name -like
"*NYCSCA*" } | rename-item $_ -newname $_.Name.Replace(" ","_") -whatif
Aquí está la respuesta:
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
Si quito la última parte, me sale una lista de archivos. ¿Alguna pista? No he agotado powershell aún, obviamente.
Nota: traté de publicar esto en superusuario, pero el sitio está fracasando constantemente, no me deja agregar esta pregunta exacta.
Aquí está muy simplificado. Ni siquiera puedo hacer funcionar este clásico ejemplo.
gci *NYCSCA* | ren $_ ($_.Name).Replace("foo","bar")
Gracias @JNK, el% lo hizo. La solución es que necesitaba esto, en caso de que esté interesado:
gci -recurse | where-object{ $_.Name -like "*NYCSCA*"} | %{rename-item $_.FullName $_.FullName.Replace("NYCSCA","SDUSD") }
ver http://stackoverflow.com/a/21614001/8479 – Rory