找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28885|回复: 7

[文本处理] [已解决]批处理for语句无法读取findstr命令的信息

[复制链接]
发表于 2011-12-11 21:09:38 | 显示全部楼层 |阅读模式
编写这段代码的目的是在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
复制代码

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-12-11 21:21:42 | 显示全部楼层
坐等版主处理

评分

参与人数 1PB +5 收起 理由
CrLf + 5 感谢主动维护论坛管理!

查看全部评分

发表于 2011-12-11 22:10:18 | 显示全部楼层
本帖最后由 CrLf 于 2011-12-11 22:12 编辑

噢,原来楼主用的管道符是全角字符...
  1. @echo off
  2. dir /b E:\test\*1*.txt
  3. pause
复制代码
发表于 2011-12-11 22:14:39 | 显示全部楼层
报错信息是什么?

评分

参与人数 1PB +3 收起 理由
CrLf + 3 乐于助人

查看全部评分

 楼主| 发表于 2011-12-12 20:55:22 | 显示全部楼层
首先执行

  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
复制代码
就显示

不是我想要的内容
发表于 2011-12-13 12:58:11 | 显示全部楼层
  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技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-12-15 22:11:21 | 显示全部楼层
虽不能解决问题,但还是多谢各位了!
发表于 2011-12-16 11:18:03 | 显示全部楼层
回复 7# gdycczj


你的代码里面那个竖线是全角状态的下的,你需要把它改成半角。
全角:|
半角:|
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 05:32 , Processed in 0.033411 second(s), 15 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表