set format1=txt
set format2=pdf
for %%h in ('dir /B *.%format1%') do (
if exists %%h (
for %%i in (*.%format2%) do (
copy "%%i" "pdf\%%i"
)
)
else (
copy "%%h" "txt\%%h"
)
)
所以基本上,如果存在格式文件,请执行此操作,如果不存在,请执行其他操作。
如果我切换.bat文件,cmd窗口只会在最后以pause
闪烁。
答案 0 :(得分:0)
如果else
放在行的开头,它将不是if
命令的一部分,该行将被忽略或将打印错误消息。它需要结束括号。在外部,您需要使用for /f
来解析命令输出或普通for
。您应该使用if exist
代替if exists
试试这样:
set format1=txt
set format2=pdf
for %%h in (*.%format1%) do (
if exist "%%h" (
for %%i in (*.%format2%) do (
copy "%%i" "pdf\%%i"
)
) else (
copy "%%h" "txt\%%h"
)
)