windows - 此时收到消息 0 是意外的批处理脚本
问题描述
我有以下批处理脚本,但我不断收到错误“此时 0 是意外的”。
IF "%Logs%"=="true" (
for /f %%i in ('dir \%Device%\logs') do set cmd=%%i
if %cmd% GTR 0 (
echo Folder does exist.
)
)
我想我必须通过延迟扩展来修复它,但我不知道如何,我将不胜感激,在此先感谢!
解决方案
您必须启用延迟扩展,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
(因为.
and ..
)。适应... GTR 2
或使用另一种方法(如上)。
推荐阅读
- python - Define Subgroup in Brian2 (library in python)
- sulu - Sulu CMS:如何获取上传图像的实际文件位置
- dart - Flutter 从父类调用子类函数
- java - -bash:./deploy.sh:权限被拒绝,错误:脚本返回退出代码 126
- npm - 无法通过 Node.js cli 登录 api connect,但可以访问 API Connect 门户
- javascript - 如何将数字添加到 getMonth() + 1,它被添加为字符串
- php - 如何同时向我的所有数据库条目发送短信
- javascript - Javascript 中用于 Error() 处理的“新”运算符
- mongodb - 带有 Spring Boot 的 MongoDB 和包含类似字段的文档
- ios - TabBarController 的 ViewControllers 数组索引返回 NSRangeException