我正在对多个文件执行某个操作,以下是为其编写的bat文件脚本。 文件的名称是这种类型:aspen_1M_bursty_25_1.pcap
@FOR /L %%i in (1,1,10) do (
@%decoder% -i L:\martin\05_distorted\Elecard\%~n1_bursty_25_%%i.pcap -o L:\martin\05_distorted\Elecard\%~n1_bursty_25_%%i.avi
)
问题是,这个脚本在里面加了' - ',最后调用命令如下:
-i L:\martin\05_distorted\Elecard\-_bursty_25_1.pcap -o L:\martin\05_distorted\Elecard\-_bursty_25_1.avi
^ ^
因此,它会返回一个错误,即没有这样的文件,因为文件的名称中没有' - ':
以上脚本位于bat文件中,我通过命令提示符调用bat文件。
如何摆脱这个' - '的事情? :)
答案 0 :(得分:1)
问题出在%~n1
替换参数中。阅读HELP CALL
以了解其工作原理。
在您的情况下,%1
是传递给您的代码的第一个参数。
因此,您需要查看调用此代码的方式。
如果这个a:标签被CALL,那么请查看CALL
命令。
如果它位于主BAT脚本中,请查看从命令行或其他BAT调用BAT的方式。
您似乎正在传递“ - ”。
name.bat ->log.txt
如果您通过“aspen”,它应该正常工作。这样:
name.bat aspen >log.txt