我的目标是将一些* .cdr扩展名的文件转换为目录中的* .ai。这些文件看起来像file_a.cdr。 file_b.cdr ...... 我已经将convert.exe替换为另一个简单的命令,比如copy,所以不要在我的例子中询问这里的含义。
setlocal enableDelayedExpansion
for %%f in (*.cdr) do (
set "infile=%%f"
set "outfile=%%~nf.ai"
copy "%infile%" "%outfile%"
)
批次的输出总是不同!!!!
有时是:
copy "%file_a.cdr" "%file_a.ai" => system cannot find file
或
copy "" "" => system cannot find file
我已经成功使用了这种语法copy !infile! !outfile!
:
提前谢谢
答案 0 :(得分:4)
您不需要变量
for %%f in (*.cdr) do (
convert "%%f" "%%~nf.ai"
)
或者,如果您尝试从命令行执行此操作,
for %f in (*.cdr) do convert "%f" "%~nf.ai"
因为内部批处理文件需要转义百分号,但命令行不是这种情况。
答案 1 :(得分:0)
使用延迟扩展。并围绕你的变量!而不是%