【输出重定向】Windows下 cmd 、powershell输出重定向

2023-05-16

目录

  • 一、cmd和powershell
  • 二、什么是输入输出重定向
  • 三、语法及示例

一、cmd和powershell

大家如果只用过Windows,可能cmd接触的相对多一点。按win +r 输入cmd即可打开。我一般用的是powershell。

cmd:
    cmd是command的缩写,即命令提示符。是提示命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。 在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统。输入一些命令,cmd.exe可以执行,比如ping url/ip。它也可以执行BAT文件。

powershell:
    PowerShell 是一种跨平台的任务自动化和配置管理框架(在Windows、Linux、macOS、ARM、Docker上都能用),由命令行管理程序和脚本语言组成。 与大多数接受并返回文本的 shell 不同,PowerShell 构建在 .NET 公共语言运行时 (CLR) 的基础之上,接受并返回 .NET 对象。 这一根本上的改变引入了全新的自动化工具和方法。
    
    学习powershell可以到微软官网,学习地址。现在windows最新的版本是7.3.0。

对比项cmdpowershell
框框颜色黑色蓝色
起用时间1981年2006年
适用性仅支持cmd脚本(bat,cmd)支持cmd脚本(bat,cmd)和powershell脚本(ps1)
扩展性仅支持cmd内置函数支持cmd内置函数+powershell cmdlet
命令别名不支持支持
输出内容类型对象文本
程序并发支持不支持
是否有ISE(编译器)有,而且能直接调试无,只有命令行
是否支持.net库
是否支持WMI(监控工具)
是否可以管理微软云资源
是否支持shell
是否可以运行所有类型程序

二、什么是输入输出重定向

输入重定向:指的是重新指定设备来代替键盘作为新的输入设备;
输出重定向:指的是重新指定设备来代替显示器作为新的输出设备。

通常是用文件或命令的执行结果来代替键盘作为新的输入设备,而新的输出设备通常指的就是文件。

我暂时只用到了输出重定向,本文对输入重定向只做简单语法说明。

什么时候会用到输出重定向?

  1. 需要将命令执行结果保存;
  2. 需要保存命令执行日志;
  3. 输出太长,cmd或者powershell显示不方便,或者内容超出最大缓冲区大小;
  4. 其他(上面是我暂时遇到的)…

三、语法及示例

PowerShell 支持重定向以下输出流。

说明已引入的版本
1成功PowerShell 2.0
2错误PowerShell 2.0
3警告PowerShell 3.0
4详细PowerShell 3.0
5调试PowerShell 3.0
6信息PowerShell 5.0
*所有流PowerShell 3.0

PowerShell 中还有一个 进度 流,但它不支持重定向。

成功和错误流类似于其他 shell 的 stdout 和 stderr 流。 但是,stdin 未连接到用于输入的 PowerShell 管道。

PowerShell 重定向运算符如下所示,其中 n 表示流号成功流 ( 1 ) 为默认值(如果未指定任何流)。

运算符说明语法
>将指定的流发送到文件。n>
>>将 指定的流追加到文件中。n>>
>&1将指定的流重定向到 成功 流。n>&1

示例

(1)将yt-dlp的帮助文档保存到 help.txt中

yt-dlp -h >help.txt

(2)将yt-dlp -F url 的结果追加到上述help.txt文件中

yt-dlp -F https://www.youtube.com/watch?v=JHNaqr-q3to"&"ab_channel=%EA%BD%83%EB%B9%B5TVGGotBBangTV >>help.txt

powershell截图

其中:
命令1会将命令执行结果保存到help.txt中,没有该文件会自动创建,有该文件则会清除原有内容后再写入;
命令2会将命令执行结果追加到help.txt的末尾;
上述操作都是默认将成功流进行重定向,和 yt-dlp -h 1>help.txt的结果;
yt-dlp是我安装的一个命令行工具,这里只是测试用。

生成的txt文件如下:

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【输出重定向】Windows下 cmd 、powershell输出重定向 的相关文章

随机推荐