高分在线等,批处理条件判断。

@echooffREM当前目录下有两个ppt的文件,下面将结果赋值给aset"a=>nul&dir/b|find/c"ppt""REM这里输出是2正确。echo%a%但是... @echo off
REM 当前目录下有两个ppt的文件,下面将结果赋值给a
set "a=>nul&dir /b | find /c "ppt""
REM 这里输出是2 正确。
echo %a%
但是在这里判断的时候不能输出 OK 是什么原因?
if "%a%" == "2" echo OK
pause
展开
 我来答
hnsz2k
2012-05-15 · TA获得超过1582个赞
知道大有可为答主
回答量:1360
采纳率:100%
帮助的人:1459万
展开全部
a 实际上被赋予了一个字符串 >nul&dir /b | find /c "ppt"
echo %a% 显示的就是这个字符串产生的结果,即:2
就是说, %a% 并不是2,而是>nul&dir /b | find /c "ppt",所以
if "%a%" == "2" echo OK 条件为假,不显示 OK
追问
那如何将 dir /b | find  /c "ppt" 的结果保存为变量呢?
追答
for /f "delims=" %i in ('dir /b ^| find  /c "ppt"') do echo %i

或者
for /f "delims=" %i in ('dir /b ^| find /c "ppt"') do set a=%i

以上是在 CMD 中运行。如果在批处理里,所有 %i 需改为 %%i
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式