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

测试代码:
  1. @Tasklist /nh /fi "Imagename eq cmd.exe"
  2. @echo;分隔
  3. for /f "delims=" %%k in ('Tasklist^|find /i "cmd.exe"') do @echo;%%k
  4. @echo off
  5. echo;分隔
  6. Tasklist /nh /fi "Imagename eq cmd.exe"
  7. pause
复制代码
输出结果:
  1. cmd.exe                     2436 Console                 0      1,836 K
  2. 分隔
  3. D:\>for /f "delims=" %k in ('Tasklist|find /i "cmd.exe"') do @echo;%k
  4. cmd.exe                     2436 Console                 0      1,876 K
  5. cmd.exe                     3204 Console                 0      2,896 K
  6. 分隔
  7. cmd.exe                     2436 Console                 0      1,892 K
  8. 请按任意键继续. . .
复制代码
| 前不加 ^ ,他在预处理时就是管道符,于是他分隔了 for 语句,语法错误
加了前缀 ^ ,在预处理时就是普通字符,同时 ^ 被脱去,再开新解释器时他才成为管道
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

本帖最后由 hanyeguxing 于 2011-4-21 08:01 编辑

2楼代码演示for语句是如何预处理、如果新开解释器处理set集命令、如何脱字符的,怎么没看明白捏?
前一个字符是^,就会转义后一个字符,即使后一个字符是^,后面这个就成了普通字符而非转义符;同时脱去前一个^,只显示第二个字符。
多个字符时也是如此递推
>也是敏感字符,即重定向输出符号,如果前不加^就是输出的意思,那么必须告诉他输出到哪
echo;^^^^^>
第一个^转义第二个^,第三个^转义第四个^,第五个^转义第一个>,结果显示第二个^、第四个^和>
echo;^^^^>
此时>没被转义,就是输出的意思,那输出到哪啊?语法错误!~
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表