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

[文本处理] [已解决]批处理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
复制代码
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

回复 7# gdycczj


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

TOP

虽不能解决问题,但还是多谢各位了!

TOP

  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.括号中的命令结构不对
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

首先执行
  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
复制代码
就显示

不是我想要的内容

TOP

报错信息是什么?
1

评分人数

    • CrLf: 乐于助人PB + 3

TOP

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

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

TOP

坐等版主处理
1

评分人数

    • CrLf: 感谢主动维护论坛管理!PB + 5

TOP

返回列表