此时批处理脚本获取消息0是意外的

时间:2018-05-14 16:40:58

标签: windows batch-file cmd

我有以下批处理脚本,我一直收到错误" 0此时出乎意料。"

IF "%Logs%"=="true" (
    for /f %%i in ('dir \%Device%\logs') do set cmd=%%i
        if %cmd% GTR 0 (
            echo Folder does exist.
        )
)

我认为我必须通过延迟扩展来解决这个问题,但我不知道如何,我将不胜感激任何帮助,提前感谢!

1 个答案:

答案 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要么使用其他方法(如上所述)。