我有以下批处理脚本,我一直收到错误" 0此时出乎意料。"
IF "%Logs%"=="true" (
for /f %%i in ('dir \%Device%\logs') do set cmd=%%i
if %cmd% GTR 0 (
echo Folder does exist.
)
)
我认为我必须通过延迟扩展来解决这个问题,但我不知道如何,我将不胜感激任何帮助,提前感谢!
答案 0 :(得分:0)
您必须使用setlocal enabledelayedexpansion
启用延迟展开,然后使用 !var!
代替%var%
:
@echo off
setlocal enabledelayedexpansion
IF "%Logs%"=="true" (
for /f %%i in ('dir /ad /b "\%Device%\logs" ^|find /c /v ""') do set cmd=%%i
if !cmd! GTR 0 (
echo Folder does exist.
)
)
注意:对于空文件夹,您将获得2
的值(因为.
和..
)。要么适应... GTR 2
要么使用其他方法(如上所述)。