关于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 重定向的更多相关文章

  1. Cmd重定向

    1.执行单条cmd命令 public static string ExecuteCmd(string command) { Process p = new Process(); p.StartInfo ...

  2. <编程>比较两种素数表生成算法+计算程序运行时间+通过CMD重定向测试程序

    最近学习加密算法,需要生成素数表,一开始使用简单的循环,从2开始判断.代码如下: #include<iostream> #include<cstdio> #include< ...

  3. Windows 常用Cmd命令行 (持续更新...)

    查看IP ipconfig 查看WIFI密码 netsh wlan show profiles wifi_name key = clear 系统探针 systeminfo CMD重定向 输出符号> ...

  4. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  5. NetCat使用手册

    简介:   在网络工具中有“瑞士军刀”美誉的NetCat(以下简称nc),在我们用了N年了至今仍是爱不释手.因为它短小精悍(这个用在它身上很适合,现在有人已经将其修改成大约10K左右,而且功能不减少) ...

  6. IPC$命令详解

    一 摘要二 什么是ipc$三 什么是空会话四 空会话可以做什么五 ipc$所使用的端口六 ipc管道在hack攻击中的意义七 ipc$连接失败的常见原因八 复制文件失败的原因九 关于at命令和xp对i ...

  7. 445port入侵具体解释

    445port入侵具体解释   关于"445port入侵"的内容445port入侵具体解释本站搜索很多其它关于"445port入侵"的内容 445port入侵, ...

  8. 445port入侵详细解释

    445port入侵具体解释   关于"445port入侵"的内容445port入侵具体解释本站搜索很多其它关于"445port入侵"的内容 445port入侵, ...

  9. 空连接ipc$入侵

    使用命令 net use url=file://\\IP\ipc$\\IP\ipc$ "" /user:"" 就可以简单地和目标建立一个空连接(需要目标开放ip ...

随机推荐

  1. 啊哈!C语言课后参考答案下

    最近看到一本好评量很高的的C语言入门书,课本真的很好,入门的话.专业性没有那么强,但入门足够了!!好评!看着看着就想把这本书的题课后习题都写出来,最后就有了这个小结.可能有的不是最好,不那么专业,但主 ...

  2. IDEA永久激活使用

    前言 今一早一打开IDEA发现秘钥到期了,提示秘钥被取消,不能用了,因为之前也是从网站找的秘钥,所以失效也是情理当中的,所以绞尽脑汁网上找各种破解方法,结果却是被我找到了,这里和大家分享下. 破解步骤 ...

  3. 接口自动化测试框架 -- reudom

    reudom Automated testing framework based on requests and unittest interface. 基于 Unittest 和 Requests ...

  4. oracle中使用pl/sql进行的文件读写操作

    第一次知道,可以使用pl/sql来进行文件的读写操作,嘿嘿,简单的试了下可行. 基本步骤如下: SQL> conn sys/sys@orcl as sysdba 已连接. SQL> cre ...

  5. 单用户登陆demo-后者挤到前者,类似QQ

    单用户登陆demo ,采用的是Tp5. 流程是,当用户首次登陆是验证用户帐号密码,成功的,用当前时间戳加上用户id和ip 拼接成一个标识,暂且sign ,然后存入cookie ,时间戳存入缓存redi ...

  6. Sample Code之Take a screenshot of a SceneView

    周末事情太多了,以后就工作日发布随笔吧.周末的话,看心情,也许也会发~ 今天的实例代码解析是Take a screenshot of a SceneView,也就是获取快照,话不多说,进入正题. 首先 ...

  7. C语言之函数用法总结

    C语言函数概述: 构成C语言程序的基本模块,模块化编程的最小单位. 函数调用的基本方式: 函数调用时的数据传递: 函数调用的过程: 函数原型与函数定义的区别: 函数封装: 1.外界对函数的影响仅限于入 ...

  8. CTO说|非容器化应用怎么玩多云?Kubernetes不管我们管啊

    Kubernetes已经成为容器编排系统的事实标准,是现在主流的跨云容器化应用操作系统. 但是,Kubernetes的目标并不是容器本身,而是承载其上的应用,本质上是为了解决(容器化)应用上云这个难题 ...

  9. Python中url标签使用详解

    url标签: 1.在模板中,我们经常要使用一些url,实现页面之间的跳转,比如某个a标签中需要定义href属性.当然如果通过硬编码的方式直接将这个url固定在里面也是可以的,但是这样的话,对于以后进行 ...

  10. Java开源工作流引擎Jflow表单方案系列讲解一

    关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单  拖拽式表单  表单方案介绍 适配数据库: oralce,mysql,sq ...