Por que esse script funciona na linha de comando, mas não quando o coloco em um arquivo em lote do Windows?

Por que esse script funciona na linha de comando, mas não quando o coloco em um arquivo em lote do Windows?

Este é o script que posso executar na linha de comando:

(for /r %i in (*) do @echo %~fsi) | clip

Mas dentro de um arquivo em lote, recebo um erro de sintaxe sobre colchetes inesperados....

) was unexpected at this time.

(for /r ~fsi) | clip

Responder1

Tente isso em lote:

@Echo Off
(for /r %%i in (*) do echo %%~fsi) | clip

Você deve duplicar os sinais % ao executar arquivos em lote.

informação relacionada