Warum funktioniert dieses Skript über die Befehlszeile, aber nicht, wenn ich es in eine Windows-Batchdatei einfüge?

Warum funktioniert dieses Skript über die Befehlszeile, aber nicht, wenn ich es in eine Windows-Batchdatei einfüge?

Dies ist das Skript, das ich von der Befehlszeile aus ausführen kann:

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

Aber in einer Batchdatei erhalte ich einen Syntaxfehler wegen unerwarteter Klammern …

) was unexpected at this time.

(for /r ~fsi) | clip

Antwort1

Versuchen Sie dies im Batch:

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

Beim Ausführen in Batchdateien müssen Sie die %-Zeichen verdoppeln.

verwandte Informationen