Estoy ejecutando un archivo por lotes dentro de PowerShell. Llama a otro programa para hacer un montón de mapas que envía a una subcarpeta llamada "GRD"
Luego quiero cambiar el nombre de los archivos en la carpeta GRD agregando espacios "" donde hay guiones bajos "_", así que estoy usando el comando PoweShell:
DIR | Rename-Item -NewName {$ .name -replace " ", ""}
Esta línea funciona bien si la escribo en la ventana de comandos de PS después de ejecutar mi archivo por lotes. Pero, ¿hay alguna manera de que pueda incorporar esta línea al final de mi archivo por lotes? He intentado:
cd GRD
DIR | Rename-Item -NewName {$ .name -replace " ", ""}
Pero me sale el error:
C: \ Datos \ GRD> DIR | Rename-Item -NewName {$ .name -replace " ", ""}
'Rename-Item' no se reconoce como un comando interno o externo, un programa operable o un archivo por lotes.
Respuestas:
Además del hecho de que su ejemplo no funciona correctamente, en general, para usar PowerShell desde un archivo por lotes, debe especificar que desea ejecutar PowerShell y alimentar la línea de comandos de PS como argumento.
Entonces, en su lote, use algo como:
powershell "DIR | Rename-Item -NewName { $.name -replace \"\",\" \" }"
Tenga
\
en cuenta el frente de las comillas dobles para escapar de ellas dentro del argumento que delimita las comillas dobles.fuente