- 批处理脚本教程
- 批处理脚本 - 首页
- 批处理脚本 - 概述
- 批处理脚本 - 环境
- 批处理脚本 - 命令
- 批处理脚本 - 文件
- 批处理脚本 - 语法
- 批处理脚本 - 变量
- 批处理脚本 - 注释
- 批处理脚本 - 字符串
- 批处理脚本 - 数组
- 批处理脚本 - 决策
- 批处理脚本 - 运算符
- 批处理脚本 - 日期和时间
- 批处理脚本 - 输入/输出
- 批处理脚本 - 返回代码
- 批处理脚本 - 函数
- 批处理脚本 - 进程
- 批处理脚本 - 别名
- 批处理脚本 - 设备
- 批处理脚本 - 注册表
- 批处理脚本 - 网络
- 批处理脚本 - 打印
- 批处理脚本 - 调试
- 批处理脚本 - 日志记录
- 批处理脚本资源
- 批处理脚本 - 快速指南
- 批处理脚本 - 有用资源
- 批处理脚本 - 讨论
批处理脚本 - 文件管道
管道运算符(|)接收一个命令的输出(默认情况下为 STDOUT),并将其定向到另一个命令的输入(默认情况下为 STDIN)。例如,以下命令对 C:\ 目录的内容进行排序。
dir C:\ | sort
在这个例子中,两个命令同时启动,但随后 sort 命令暂停,直到它接收 dir 命令的输出。sort 命令使用 dir 命令的输出作为其输入,然后将其输出发送到句柄 1(即 STDOUT)。
以下是管道命令的另一个示例。在这个示例中,文件 C:\new.txt 的内容通过管道过滤器发送到 sort 命令。
@echo off TYPE C:\new.txt | sort
结合命令与重定向运算符
通常,管道运算符与重定向运算符一起使用,以便在处理管道命令时提供有用的功能。
例如,以下命令将首先获取 C:\ 中定义的所有文件,然后使用管道命令查找所有扩展名为 .txt 的文件。然后它将获取此输出并将其打印到文件 AllText.txt 中。
dir C:\ | find "txt" > AllText.txt
使用多个管道命令
要在同一个命令中使用多个过滤器,请使用管道符号(|)分隔这些过滤器。例如,以下命令搜索驱动器 C: 上的每个目录,查找包含字符串“Log”的文件名,然后一次在一个命令提示符窗口中显示它们 -
dir c:\ /s /b | find "TXT" | more
以下是一些管道过滤器使用方法的示例。
示例
以下示例使用 tasklist 命令发送所有正在运行的任务列表,并将输出发送到 find 命令。然后,find 命令将查找所有类型为记事本的进程并在命令提示符中显示它们。
tasklist | find "notepad"
输出
以下是一个示例输出。
notepad.exe 1400 Console 1 8,916 K notepad.exe 4016 Console 1 11,200 K notepad.exe 1508 Console 1 8,720 K notepad.exe 4076 Console 1 8,688 K
以下示例使用 tasklist 命令发送所有正在运行的任务列表,并将输出发送到 more 命令。然后,more 命令将一次显示一页正在运行的任务列表。
示例
tasklist | more
输出
Image Name PID Session Name Session# Mem Usage ====================== ================ =========== ============ System Idle Process 0 Services 0 4 K System 4 Services 0 276 K smss.exe 344 Services 0 1,060 K csrss.exe 524 Services 0 4,188 K csrss.exe 608 Console 1 58,080 K wininit.exe 616 Services 0 3,528 K winlogon.exe 644 Console 1 5,636 K services.exe 708 Services 0 7,072 K lsass.exe 716 Services 0 10,228 K svchost.exe 784 Services 0 10,208 K svchost.exe 828 Services 0 7,872 K dwm.exe 912 Console 1 208,316 K nvvsvc.exe 932 Services 0 6,772 K nvxdsync.exe 968 Console 1 16,584 K nvvsvc.exe 976 Console 1 12,780 K svchost.exe 1008 Services 0 20,340 K svchost.exe 224 Services 0 39,740 K svchost.exe 468 Services 0 11,864 K svchost.exe 860 Services 0 11,184 K svchost.exe 232 Services 0 16,992 K wlanext.exe 1168 Services 0 12,840 K -- More --
以下示例使用 tasklist 命令发送所有正在运行的任务列表,并将输出发送到 find 命令。然后,find 命令将查找所有类型为记事本的进程,然后使用重定向命令将内容发送到文件 tasklist.txt。
示例
tasklist | find "notepad" > tasklist.txt
输出
如果打开文件 tasklist.txt,您将获得以下示例输出。
notepad.exe 1400 Console 1 8,916 K notepad.exe 4016 Console 1 11,200 K notepad.exe 1508 Console 1 8,720 K notepad.exe 4076 Console 1 8,688 K