¿Por qué este script funciona desde la línea de comando, pero no cuando lo coloco en un archivo por lotes de Windows?

¿Por qué este script funciona desde la línea de comando, pero no cuando lo coloco en un archivo por lotes de Windows?

Este es el script que puedo ejecutar desde la línea de comandos:

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

Pero dentro de un archivo por lotes, aparece un error de sintaxis sobre corchetes inesperados...

) was unexpected at this time.

(for /r ~fsi) | clip

Respuesta1

Pruebe esto en lotes:

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

Debe duplicar el % de signos al ejecutar archivos por lotes.

información relacionada