O comando FOR / DO fornece “Foi inesperado neste momento” quando executado a partir do prompt de comando

3

Tentando executar o seguinte diretamente no prompt de comando.

FOR /f "delims=[] tokens=2" %%a in ('ping %computername% -4 -n 1 ^| findstr "["') do (set ip=%%a)

Enquanto ele é executado bem de dentro de um arquivo de lote, se executado colado diretamente em um prompt de comando, recebo o seguinte erro:

%%a was unexpected at this time.

Como preciso alterá-lo para funcionar diretamente no prompt de comando e NÃO requer um arquivo em lotes?

Requisitos de longa história:

Eu tenho uma exigência de basicamente fornecer uma lista de comandos que podem ser executados através de copiar / colar em um prompt de comando, sem usar um arquivo em lotes (basta ir com ele, não meus requisitos, mas aqueles dados a mim e não podem ser movido). Eu tenho um comando posterior que echo% ip% para um arquivo .txt.

    
por BondUniverse 26.03.2015 / 22:03

1 resposta

4

Ao fazer referência à variável de loop em um arquivo de lote, é necessário dobrar os sinais de porcentagem (ex .: %%a ), mas se você fizer isso apenas executando o comando diretamente no prompt, não funcionará. Você precisa alterá-los para um único sinal de porcentagem ( %a ).

Talvez confira esta outra pergunta do SU para obter mais informações: O que significa o sinal de porcentagem (% e %%) em um argumento de arquivo em lote?

    
por 26.03.2015 / 22:06