Board logo

标题: [文件操作] 批处理msg命令分行显示怎么显示不了? [打印本页]

作者: shuaige100    时间: 2010-7-2 13:02     标题: 批处理msg命令分行显示怎么显示不了?

本帖最后由 pcl_test 于 2017-4-17 12:44 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('mode ^| find /i "COM"') do (echo %%i)|msg %username% /time:5
复制代码
这个代码为什么把%%I分成两次来传输给msg?
能一次传输完吗?
你可以把这个命令复制在自己的电脑先试试看

[ 本帖最后由 shuaige100 于 2010-7-4 12:18 编辑 ]
作者: broly    时间: 2010-7-2 15:25

你是不是要这个?


  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('mode') do (set /a m+=1 & set m!m!=%%i)
  3. (echo %m3:~7%
  4. echo %m4:~7%
  5. echo %m5:~7%
  6. echo %m6:~7%)|msg %username% /time:5
复制代码

作者: shuaige100    时间: 2010-7-2 16:14     标题: 回复 2楼 的帖子

呵呵终于明白了一点,它是不能用find来用的吗?
作者: broly    时间: 2010-7-2 16:34     标题: 回复 3楼 的帖子

说明一下,你的P写错了,是CON,不是COM。。。。也可以用find
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "usebackq skip=2 delims=" %%i in (`"mode|find /i /v "CON""`) do (set /a m+=1 & set m!m!=%%i)
  3. (echo %m1:~7%
  4. echo %m2:~7%
  5. echo %m3:~7%
  6. echo %m4:~7%)|msg %username% /time:5
复制代码

[ 本帖最后由 broly 于 2010-7-2 16:43 编辑 ]
作者: shuaige100    时间: 2010-7-2 17:00     标题: 回复 4楼 的帖子

是com啊mode | find /i "COM"没有出错,而con就出错了
作者: broly    时间: 2010-7-2 17:10     标题: 回复 5楼 的帖子

哦。不管了。解决了就可以
作者: shuaige100    时间: 2010-7-2 17:30     标题: 回复 6楼 的帖子

还是用find /i的方便啊,大侠我就怀疑('mode | find /i "COM"')这里面的修饰符错了才导致出错的
作者: sgaizxt001    时间: 2010-7-2 21:00

('mode | find /i "COM"')这里需要写成
  1. ('mode ^| find /i "COM"')
复制代码

意思就是把这个管道符转义成只对括号里的前一个命令起作用,把mode的输出结果给find查询,括号外的不管
for /f "delims=" %%i in ('mode | find /i "COM"') do (set /a m+=1 & set m!m!=%%i)
如果是这样写的话,意思就是把for /f "delims=" %%i in ('mode 的结果传递给后面,所以肯定出错

[ 本帖最后由 sgaizxt001 于 2010-7-2 21:02 编辑 ]
作者: shuaige100    时间: 2010-7-3 11:55     标题: 回复 8楼 的帖子

改了你这个也显示不了东西——你可以在自己电脑试试
作者: Batcher    时间: 2010-7-4 11:40

批处理for语句中的管道符为何要用尖号^进行转义?
http://bbs.bathome.net/viewthread.php?tid=1290&page=2#pid6306
作者: shuaige100    时间: 2010-7-4 11:48     标题: 回复 10楼 的帖子

——看了好复杂啊,管理员能列一下代码吗?
作者: Batcher    时间: 2010-7-4 12:21

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('mode ^| find /i "COM"') do (
  4.     set /a m+=1
  5.     set m!m!=%%i
  6. )
  7. (echo %m1:~7%
  8. echo %m2:~7%)|msg %username% /time:5
复制代码

作者: shuaige100    时间: 2010-7-4 21:54     标题: 回复 12楼 的帖子

还是打开闪一下就没了,看来msg对这个^很感冒,我1楼的就没出错,不过变的不方便了。
作者: Batcher    时间: 2010-7-5 10:28     标题: 回复 13楼 的帖子

你用的什么操作系统?
我在XP SP3和Vista SP2里面测试没有问题。
作者: shuaige100    时间: 2010-7-5 11:49     标题: 回复 14楼 的帖子

XP SP2 真郁闷,我这个该怎么解决好呢?




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