我想创建一个Windows批处理文件,该文件采用特定模式的文件名(比如test * .zip)并将其分配给变量。这样我就可以检查/验证文件是否存在于其他位置。
怎么做?
我尝试了下面的代码..它按预期执行但执行了两次。
@echo on
call :sub "D:\temp\test*.zip"
if exist "D:\temp\Updates\%filename%" (set flag="true") else (set flag="false")
echo %flag%
:sub
set filename=%~nx1
GOTO :EOF
答案 0 :(得分:1)
与许多语言不同,批处理没有“程序”结束的概念 - 它只是逐行继续执行,直到它到达文件结尾。因此,在完成主线之后需要goto :eof
,否则将继续执行子程序代码。 :EOF
是CMD
理解为end of file
的预定义标签。冒号必需。