Batch file 如何获取文件夹中特定文件的名称并使用批处理脚本分配给变量

Batch file 如何获取文件夹中特定文件的名称并使用批处理脚本分配给变量,batch-file,Batch File,我想创建一个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% :su

我想创建一个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

与许多语言不同,batch没有“过程”结尾的概念——它只是逐行继续执行,直到到达文件结尾。因此,您需要在完成主线后执行
goto:eof
,否则将通过子程序代码继续执行<代码>:EOF是一个预定义的标签,被
CMD
理解为意味着
文件结束
。冒号是必需的

转到:EOF
放在
:sub
上方的行上,但不会执行两次。你在控制台上看到了什么?谢谢你的建议。