如果在命令提示符中粘贴,则命令有效,但从批处理文件运行时则不能

Ayb*_*ybe 3 windows command-line batch-file

试图打印出文件的8dot3名称,当我在命令提示符中粘贴该行时,它会起作用,但是当我从批处理文件中运行它时,它会起作用.

粘贴时的结果:

D:\tmp>cmd /e:on /c for %A in (8088_othello.com) do @echo %~nxsA

8088_O~1.COM
Run Code Online (Sandbox Code Playgroud)

批处理文件的结果:

D:\tmp>lfn.bat

D:\tmp>cmd /e:on /c for ~nxsA

~nxsA was unexpected at this time.
Run Code Online (Sandbox Code Playgroud)

还需要什么才能使其在批处理文件中运行?

小智 7

你需要转义%是批处理文件

只需键入cmd/e:on/c for %% A in(8088_othello.com)do @echo %% ~nxsA