[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 terse 于 2020-1-9 14:33 编辑

这样行不?
(代码FOR里 也可以直接FINDSTR 省了一个FOR 和后面判断)
  1. @echo off
  2. cls
  3. set mulu=data\work
  4. for /f %%a in ('dir /s /b %mulu%\*.txt') do (
  5.         for /f %%b in ('findstr "第二行" %%a‘) do (
  6.                 for /f "tokens=2 delims==" %%c in ('echo %%b') do (
  7.                      if "%%c"=="" start /w "" "%windir%\system32\notepad.exe" "%%a"
  8.                 )
  9.         )
  10. )
复制代码

TOP

变通一下呢?
  1. for /f "tokens=1* delims==" %%c in ('echo %%b') do (
  2.                      if "%%d"=="" start /w "" "%windir%\system32\notepad.exe" "%%a"
  3.                 )
复制代码
  1.              (for /f "tokens=2 delims==" %%c in ('echo %%b') do (
  2.                       color
  3.              ))||start /w "" "%windir%\system32\notepad.exe" "%%a"
复制代码

TOP

回复 10# binghejin
第一个代码的 "%%d" 是=前面的汉字?
第二个代码 就是如果=后面为空 就执行后面的命令的啊
你再检测一下 问题到底在哪里;
可能是FINDSTR 对中文关键词的BUG

TOP

FINDSTR 对于关键词为中文的话有BUG(我这边是这样的情况)
把项目数量 改为a 测试了
  1. @echo off
  2. for /f "delims=" %%a in ('findstr /isrm "a=\>" *.txt') do (
  3.       start /w "" "%windir%\system32\notepad.exe" "%%a"
  4. )
  5. pause
复制代码

TOP

返回列表