executando arquivo em lote dentro do powershell

1

Estou executando um arquivo em lotes no PowerShell. Ele chama outro programa para fazer um monte de mapas que é enviado para uma subpasta chamada "GRD"

Eu quero então renomear os arquivos na pasta GRD adicionando espaços "" onde há sublinhados "_", então estou usando o comando PoweShell:

DIR | Rename-Item -NewName { $.name -replace ""," " }

Essa linha funciona bem se eu digitá-la na janela de comando do PS depois de executar o arquivo em lote. Mas existe uma maneira que eu poderia incorporar essa linha no final do meu arquivo de lote? Eu tentei:

cd GRD

DIR | Rename-Item -NewName { $.name -replace ""," " }

Mas recebo o erro:

C:\Data\GRD>DIR | Rename-Item -NewName { $.name -replace ""," " }

'Rename-Item' is not recognized as an internal or external command, operable program or batch file.

    
por Sols 11.08.2014 / 20:49

1 resposta

1

Além do fato de que seu exemplo não funciona adequadamente, em geral, para usar o PowerShell, você especifica que deseja executar o PowerShell e alimente a linha de comando do PS como um argumento. / p>

Então, em seu lote, use algo como:

powershell "DIR | Rename-Item -NewName { $.name -replace \"\",\" \" }"

Observe o \ na frente das aspas duplas para escape-los dentro do argumento delimitando aspas duplas.

    
por 11.08.2014 / 20:58