Board logo

标题: [文本处理] [已解决]批处理for语句无法读取findstr命令的信息 [打印本页]

作者: gdycczj    时间: 2011-12-11 21:09     标题: [已解决]批处理for语句无法读取findstr命令的信息

编写这段代码的目的是在E:\test目录下查找文件名为1.bak文件,然后用for语句显示该内容。但在执行时会报错,求解各位大大?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d E:\test  
  4. for /f "skip=1" %%i in ('dir /b E:\test^|findstr /l "1" *.bak') do echo %%i
  5. pause
复制代码

作者: Demon    时间: 2011-12-11 21:21

坐等版主处理
作者: CrLf    时间: 2011-12-11 22:10

本帖最后由 CrLf 于 2011-12-11 22:12 编辑

噢,原来楼主用的管道符是全角字符...
  1. @echo off
  2. dir /b E:\test\*1*.txt
  3. pause
复制代码

作者: awk    时间: 2011-12-11 22:14

报错信息是什么?
作者: gdycczj    时间: 2011-12-12 20:55

首先执行
  1. @echo off
  2. cd /d E:\test
  3. dir /b E:\test^|findstr /l "1" *.bak
  4. pause
复制代码
是没有问题的。显示

再执行
  1. for /f "skip=1" %%i in ('dir /b E:\test^|findstr /l "1" *.bak') do echo %%i
复制代码
就显示

不是我想要的内容
作者: Hello123World    时间: 2011-12-13 12:58

  1. @echo off
  2. cd /d E:\test  
  3. for /f "delims=" %%i in ('dir /b E:\test\*.bak ^| findstr /l "1" ') do echo %%i
  4. pause
复制代码
error:
1.skip=1没必要
2.|符号不对
3.括号中的命令结构不对
作者: gdycczj    时间: 2011-12-15 22:11

虽不能解决问题,但还是多谢各位了!
作者: awk    时间: 2011-12-16 11:18

回复 7# gdycczj


你的代码里面那个竖线是全角状态的下的,你需要把它改成半角。
全角:|
半角:|




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