0

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

如何摆脱这个'-'的东西?:)

4

1 回答 1

1

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

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

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

如果这是一个 :label 被调用,则查看该CALL命令。

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

看来您正在传递"-"

name.bat ->log.txt

相反,如果您传递“aspen” ,它应该可以正常工作。这边走:

name.bat aspen >log.txt
于 2013-09-06T10:32:14.337 回答