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

[其他] [讨论]批处理for语句配合Wmic 使用中的一些问题

http://bbs.bathome.net/viewthread.php?tid=597
在上面的连接上发现wmic和set/p语法上的一个冲突
  1. @echo off
  2. set /p=生成一个不带换行符的文本<nul>name.txt
  3. Wmic Process Get Name
  4. :此演示因为set/p语法导致Wmic命令无法运行
  5. pause
复制代码
  1. @echo off
  2. >name.txt set /p=生成一个不带换行符的文本<nul
  3. Wmic Process Get Name
  4. :虽然就语法上看没太大区别,而此时Wmic命令能正常运行
  5. pause
复制代码
现在的问题是
  1. @echo off
  2. for /f "skip=3 delims=" %%a in ('Wmic Process Get Name 2^>nul') do echo 前面%%a后面
  3. pause
复制代码
运行结果前面字符无法显示,而后面的却跑到前面去了。包括/format:csv和/Value同样结果,这个问题一直困扰着我,曾花大量时间测试和在google寻找解答始终一无所获,希望大家一起探讨和解答

原来是call忽略掉不可见的控制字符
目前结论for + wmic + call

TOP

哎、发觉自己真的很笨,之前用过N次for + wmic + call语法,今天因jm指点才破疑,以前是需要用到call才用,而现在是必须要用call
除了这个方法大家看看还有其它办法吗?

[ 本帖最后由 fastslz 于 2008-12-21 18:10 编辑 ]

TOP

返回列表