经过“如果存在”检查后,如何在批处理中设置变量?

经过“如果存在”检查后,如何在批处理中设置变量?

经过“如果存在”检查后,如何在批处理中设置变量?

@ECHO OFF
setlocal enabledelayedexpansion
if exist ('dir c* /B /A:-D') set Lo=C
echo Lo: !Lo!
pause

当我的文件夹中有一个以 C 开头的文件时,我希望结果显示“Lo: C”,而不是当前的“Lo:”。

答案1

直接处理另一个 cmd 输出的唯一方法是使用对于/f

@ECHO OFF
if exist "X:\Path\c*" (set "Lo=C") else (set "LO=n/a")
echo Lo: %Lo%
pause

确保它不是目录

@ECHO OFF
Set "LO=n/a"
for /f "delims=" %%A in ('dir /B /A-D "X:\Path\C*" 2^>NUL') Do set "Lo=C"
echo Lo: %Lo%
pause

相关内容