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

[文本处理] [已解决]批处理结合WMIC获取文件路径怎样去掉行末带换行?

[复制链接]
发表于 2011-4-22 16:17:32 | 显示全部楼层 |阅读模式
用wmic命令的datefile全盘查找指定扩展名的文件并获取其全名的代码:
  1. @echo off
  2. echo 正在搜索,请等待……
  3. for /f "skip=1 tokens=* eol=" %%a in ('wmic datafile where "Extension='mof'" get name') do (
  4. echo "%%a")
  5. pause
复制代码
输出的结果如下:

可以发现获取到的文件名后面莫名其妙地多了个换行符,导致双引号的第二半被换行了
如何解决?
怎样才能让获取到的文件是个真实的路径即通过判断文件存在检验是否满足条件:

  1. @echo off
  2. echo 正在搜索,请等待……
  3. for /f "skip=1 tokens=* eol=" %%a in ('wmic datafile where "Extension='mof'" get name') do (
  4. if not exist "%%a" echo 如果显示了本句话,测试失败。)
  5. pause
复制代码
请知道的朋友不吝赐教,小弟感激不尽!

for/f的参数我没设置好,不知如何设置才能得到我希望得到的效果。

评分

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

查看全部评分

发表于 2011-4-22 16:30:06 | 显示全部楼层
win7系统吧?wmic输出的是unicode格式,我喜欢这样转成ansi:
for /f ... in ('wmic datafile where "Extension='mof'" get name^|more') do ...
 楼主| 发表于 2011-4-22 18:21:14 | 显示全部楼层
2# zm900612

我的是XPSP3系统,用了你的代码还是没成功:
  1. @echo off&setlocal enabledelayedexpansion
  2. echo 正在搜索,请等待……
  3. for /f "skip=1 tokens=*" %%a in ('wmic datafile where "Extension='ppt'" get name ^|more') do (
  4. echo %%a
  5. if not exist "%%a" echo 如果显示了本句话,测试失败。)
  6. pause
复制代码
代码有不对的地方吗?
发表于 2011-4-22 19:19:24 | 显示全部楼层
1,如果数据不带空格或其他敏感字符,使用call传递
2,如果有,可以使用变量截取
3,不推荐使用 wmic datafile
发表于 2011-4-22 19:31:47 | 显示全部楼层
批处理全盘搜索指定文件获取其完整路径
http://bbs.bathome.net/thread-3465-1-1.html
发表于 2011-4-22 19:34:58 | 显示全部楼层
2# zm900612


跟unicode没啥关系,是行尾多了换行符,XP特有的问题,Vista/Win7里面不存在。
 楼主| 发表于 2011-4-22 19:40:36 | 显示全部楼层
嗯,没用过WIN7,我现在用的是XP。问题刚刚已经解决了,方法如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. echo 正在搜索,请等待……
  3. for /f "skip=1 delims=" %%a in ('wmic datafile where "Extension='ppt'" get name') do (
  4. set n=%%a
  5. set n=!n:~,-1!
  6. echo !n!
  7. if not exist "!n!" echo 如果显示了本句话,测试失败。)
  8. pause
复制代码

方法:
用set命令将获取到的参数的最后一个字符删除。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 09:48 , Processed in 0.020413 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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