cmd 重定向
关于cmd 命令的重定向输出 2>&1
mycommand >mylog.txt 2>&1
应该是最经典的用法了。
命令的结果可以通过“ %> ”的形式来定向输出, % 表示文件描述符:1 为标准输出 stdout 、 2 为标准错误stderr 。系统默认 % 值是1 ,也就是 “ 1> ”,而 1> 可以简写为 > ,也就是默认为 > 。stdout 的默认目标是终端,stderr 的默认目标为也是终端。
我们在批处理中执行:
echo text >result.txt
我们就可以在屏幕上会看到 echo text 1>result.txt ,即是这个道理。
其中& 需要直接与重定向符号结合使用。
应用实例:
1、 将结果输出到result.txt
net stop myservices >>result 2>&1
2、 隐藏程序输出结果
net stop myservices >nul 2>nul
微软关于重定向的文章: 使用命令重定向操作符
可以使用重定向操作符将命令输入和输出数据流从默认位置重定向到其他位置。输入或输出数据流的位置称为句柄。
下表将列出可用的句柄。
句柄 句柄的数字代号 描述
STDIN 0 键盘输入
STDOUT 1 输出到命令提示符窗口
STDERR 2 错误输出到命令提示符窗口
UNDEFINED 3-9 句柄由应用程序单独定义,它们是各个工具特有的
数字 0 到 9 代表前 10 个句柄。可以使用命令 Cmd.exe 运行程序,并对该程序前 10 个句柄中的任何一个句柄进行重定向。要指定要用的句柄,请在重定向操作符之前键入该句柄的数字。如果未定义句柄,则默认的 < 重定向输入操作符是 0 ,而默认的 > 重定向输出操作符是 1 。键入 < 或 > 操作符之后,必须指定数据的读写位置。可以指定文件名或其他现有的句柄。
要指定重定向到现有句柄,请使用与 (&) 字符,后面接要重定向的句柄号(即 & 句柄号)。例如,下面的命令可以将句柄 2 (即 STDERR )重定向到句柄 1 (即 STDOUT ):
2>&1
下表列出了可用于重定向输入和输出数据流的操作符。
重定向操作符 描述
> 将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄。
< 从文件而不是从键盘或句柄读入命令输入。
>> 将命令输出添加到文件末尾而不删除文件中已有的信息。
>& 将一个句柄的输出写入到另一个句柄的输入中。
<& 从一个句柄读取输入并将其写入到另一个句柄输出中。
| 从一个命令中读取输出并将其写入另一个命令的输入中。也称作管道。
默认情况下,可以从键盘将命令输入(即 STDIN 句柄)发送到 Cmd.exe ,然后由 Cmd.exe 将命令输出(即STDOUT 句柄)发送到命令提示符窗口。
重定向输入 (<)
要通过键盘将输入重定向到文件或设备,请使用 < 操作符。例如,要从 File.txt 获取 sort 命令的输入,请键入:
sort<file.txt
File.txt 的内容将以字母顺序列表的方式显示在命令提示符窗口中。
< 操作符可以打开具有只读访问权限的指定文件名。因此,不能在使用该操作符时向文件中写入信息。例如,如果以 <&2 启动程序,则所有试图读取句柄 0 的操作都将失败,因为句柄 2 最初是以只写访问方式打开的。
注意 : 0 是 < 重定向输入操作符的默认句柄。
重定向输出 (>)
几乎所有的命令都将输出发送到命令提示符窗口。即使将输出发送到驱动器或打印机的命令也会在命令提示符窗口显示消息和提示。
要将输出从命令提示符窗口重定向到文件或设备,请使用 > 操作符。可以在许多命令中使用该操作符。例如,要将 dir 输出重定向到 Dirlist.txt ,请键入:
dir>dirlist.txt
如果 Dirlist.txt 不存在, Cmd.exe 将创建该文件。如果 Dirlist.txt 存在, Cmd.exe 将使用 dir 命令的输出替换文件中的信息。
要运行 netsh routing dump 命令,然后将输出发送到 Route.cfg ,请键入:
netsh routing dump>c:/route.cfg
> 操作符可以打开具有只写访问权限的指定文件。因此,不能使用该操作符读取文件。例如,如果使用重定向操作符 >&0 启动程序,则写入句柄 1 的所有尝试操作都将失败,因为句柄 0 最初是以只读访问方式打开的。
注意 : 1 是 > 重定向输出操作符的默认句柄。
复制句柄
重定向操作符 & 可以将输出或输入从一个指定句柄复制到另一个指定的句柄。例如,要将 dir 输出发送到 File.txt并将错误输出发送到 File.txt ,请键入:
dir>c:/file.txt 2>&1
复制句柄时,可以复制该句柄原状态的所有特性。例如,如果一个句柄具有只读访问的属性,则该句柄的所有副本都具有只读访问属性。不能将一个具有只读访问属性的句柄复制到另一个具有只写访问属性的句柄。
使用 & 操作符重定向输入和副本
要将重定向输入操作符 (<) 与复制操作符 (&) 结合使用,指定的文件必须已经存在。如果输入文件存在, Cmd.exe将以只读方式打开该文件,然后将文件包含的字符作为输入发送到此命令(如同从键盘输入一样)。如果指定了句柄, Cmd.exe 将指定的句柄复制到系统现有的句柄中。
例如,要以句柄 0 输入读取(即 STDIN )的方式打开 File.txt ,请键入:
<file.txt
要打开 File.txt ,并在内容排序后将输出发送到命令提示符窗口(即 STDOUT ),请键入:
sort<file.txt
要查找 File.txt ,然后将句柄 1 (即 STDOUT )和句柄 2 (即 STDERR )重定向到 Search.txt ,请键入:
findfile file.txt>search.txt 2<&1
要以句柄 0 输入读取(即 STDIN )的方式复制用户定义的句柄 3 ,请键入:
<&3
使用 & 操作符重定向输出和复制
如果将输出重定向到文件且指定了现有的文件名,Cmd.exe 将以只写方式打开文件并覆盖该文件内容。如果指定了句柄, Cmd.exe 将文件复制到现有句柄中。
要将用户定义的句柄 3 复制到句柄 1 ,请键入:
>&3
要将包括句柄 2 (即 STDERR )的所有输出从 ipconfig 命令重定向到句柄 1 (即 STDOUT ),然后将输出重定向到 Output.log ,请键入:
ipconfig.exe>>output.log 2>&1
cmd 重定向的更多相关文章
- Cmd重定向
1.执行单条cmd命令 public static string ExecuteCmd(string command) { Process p = new Process(); p.StartInfo ...
- <编程>比较两种素数表生成算法+计算程序运行时间+通过CMD重定向测试程序
最近学习加密算法,需要生成素数表,一开始使用简单的循环,从2开始判断.代码如下: #include<iostream> #include<cstdio> #include< ...
- Windows 常用Cmd命令行 (持续更新...)
查看IP ipconfig 查看WIFI密码 netsh wlan show profiles wifi_name key = clear 系统探针 systeminfo CMD重定向 输出符号> ...
- Kali Linux渗透基础知识整理(四):维持访问
Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...
- NetCat使用手册
简介: 在网络工具中有“瑞士军刀”美誉的NetCat(以下简称nc),在我们用了N年了至今仍是爱不释手.因为它短小精悍(这个用在它身上很适合,现在有人已经将其修改成大约10K左右,而且功能不减少) ...
- IPC$命令详解
一 摘要二 什么是ipc$三 什么是空会话四 空会话可以做什么五 ipc$所使用的端口六 ipc管道在hack攻击中的意义七 ipc$连接失败的常见原因八 复制文件失败的原因九 关于at命令和xp对i ...
- 445port入侵具体解释
445port入侵具体解释 关于"445port入侵"的内容445port入侵具体解释本站搜索很多其它关于"445port入侵"的内容 445port入侵, ...
- 445port入侵详细解释
445port入侵具体解释 关于"445port入侵"的内容445port入侵具体解释本站搜索很多其它关于"445port入侵"的内容 445port入侵, ...
- 空连接ipc$入侵
使用命令 net use url=file://\\IP\ipc$\\IP\ipc$ "" /user:"" 就可以简单地和目标建立一个空连接(需要目标开放ip ...
随机推荐
- PHP 经典面试题集
这篇文章介绍的内容是关于PHP 经典面试题集 PHP 经典面试题集,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 结合我自己面试情况,面对的一些php面试题列举出来,基本上结合自己的看 ...
- 《带你装B,带你飞》pytest修仙之路3 - setup/teardown
1. 简介 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次.当然还有更高级一点的setupClass和teardownClass ...
- DLC双端锁,CAS,ABA问题
一.什么是DLC双端锁?有什么用处? 为了解决在多线程模式下,高并发的环境中,唯一确保单例模式只能生成一个实例 多线程环境中,单例模式会因为指令重排和线程竞争的原因会出现多个对象 public cla ...
- AcWing 240. 食物链 | 并查集
传送门 题目描述 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形. A吃B, B吃C,C吃A. 现有N个动物,以1-N编号. 每个动物都是A,B,C中的一种,但是我们并不知道它到底 ...
- EF 使用lambda表达式 更新一对多数据时报错
1.需求 更新一对多表中的附表数据,表结构如下: 2.思路 个人觉得一个个去对比关联的附表数据是删除还是添加比较麻烦,就直接清空主表关联的附表,然后重新建立关联关系. 3.弊端 如果附表(前提是附表 ...
- vue报错 [Intervention] Ignored attempt to cancel a touchmove event with cancelable
在vue开发中使用vue-awesome-swiper制作轮播图,手动拖动时会报错,解决方案: 需要滑动的标签 { touch-action: none; } -------------------- ...
- .Net Core使用分布式缓存Redis:Lua脚本
一.前言 运行环境window,redis版本3.2.1.此处暂不对Lua进行详细讲解,只从Redis的方面讲解. 二.Redis的Lua脚本 在Redis的2.6版本推出了脚本功能,允许开发者使用L ...
- Epplus Excel 导入 MSSQL 数据库
效果: 下载EXE 源码
- 自学 JAVA 的几点建议
微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 许久不见,最近公众号多了很多在校的师弟师妹们.有很多同学都加了我微信问了一些诸如 [如何自学 Java ]的问题, ...
- NPOI读取Excel的数据
首先是给项目安装NPOI.DLL :Install-Package NPOI -Version 2.4.1 HttpPostedFile upLoadPostFile = FileUpload1.Po ...