批处理文件脚本问题

时间:2013-09-06 10:08:00

标签: batch-file

我正在对多个文件执行某个操作,以下是为其编写的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文件。

如何摆脱这个' - '的事情? :)

1 个答案:

答案 0 :(得分:1)

问题出在%~n1替换参数中。阅读HELP CALL以了解其工作原理。

在您的情况下,%1是传递给您的代码的第一个参数。

因此,您需要查看调用此代码的方式。

如果这个a:标签被CALL,那么请查看CALL命令。

如果它位于主BAT脚本中,请查看从命令行或其他BAT调用BAT的方式。

您似乎正在传递“ - ”

name.bat ->log.txt

如果您通过“aspen”,它应该正常工作。这样:

name.bat aspen >log.txt