Board logo

标题: [文本处理] 帮忙看下检测E盘文件数量的BAT脚本的问题 [打印本页]

作者: lihui612ld    时间: 2021-5-18 17:49     标题: 帮忙看下检测E盘文件数量的BAT脚本的问题

  1. for /f "tokens=1" %%a in ('dir E:^|find "个文件"') do (
  2. if %%a =="找不到文件" (echo  %computername%^ 0 >>1.TXT) else (
  3. echo %computername%^ %%a >>1.TXT
  4. ))
复制代码
我这个是为了检测E盘文件数量 ,但是当E盘为空时,命令会失效,我发现是因为dir E:^|find "个文件" dir E:这个命令输出为找不到文件,而我查找的是个文件,导致for命令无法继续运行,请问我这里应该怎么改进,让文件为空时,返回字符串“找不到文件”到%%a ,求大神解惑
作者: Batcher    时间: 2021-5-18 21:41

回复 1# lihui612ld
  1. @echo off
  2. set count=0
  3. for /f "tokens=1" %%a in ('dir E: 2^>^&1^|find "个文件"') do (
  4.     set count=%%a
  5. )
  6. echo %computername% %count%
  7. pause
复制代码

作者: lihui612ld    时间: 2021-9-7 16:09

回复 2# Batcher


    dir E: 2^>^&1^  这句是什么意思 ,2^>^&1^不懂这个
作者: Batcher    时间: 2021-9-7 16:27

回复 3# lihui612ld


批处理for命令中的管道符为何要用尖号^进行转义?
http://bbs.bathome.net/thread-1290-2-1.html#pid6306

批处理中的重定向符号以及句柄的使用方法和讲解
http://bbs.bathome.net/thread-3296-1-1.html




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2