windows – 批处理脚本:为什么在这种情况下不重定向stdout工作
发布时间:2020-12-14 04:25:46 所属栏目:Windows 来源:网络整理
导读:如果打开命令提示符并键入以下内容: echo foobar nul 它将不会打印任何内容,因为nul吞下了它的所有输入.但是如果您使用PowerShell运行该命令: powershell "echo foobar" nul 它会将foobar输出到控制台.为什么会这样,我该怎么做才能解决它? 编辑:Here是$P
如果打开命令提示符并键入以下内容:
echo foobar > nul 它将不会打印任何内容,因为nul吞下了它的所有输入.但是如果您使用PowerShell运行该命令: powershell "echo foobar" > nul 它会将foobar输出到控制台.为什么会这样,我该怎么做才能解决它? 编辑:Here是$PSVersionTable的输出.看起来我正在使用PowerShell v5.0. 解决方法
注意:我假设您从cmd.exe调用命令,而不是从PowerShell中调用,这与我看到的症状一致.
你偶然发现了PS(PowerShell)v5中的一个错误(v3中没有出现;对问题的评论表明它也不在v4中),虽然我不完全理解为什么PS应该受到责备,因为我期待cmd.exe来处理重定向. PowerShell应该发送它所谓的成功流 – 默认输出的东西,包括echo,它是Write-Output的别名 – 外部世界的标准输出. 在较旧的PS版本中> NUL确实有效地抑制了PowerShell的输出. 至于解决方法: 如果您的代码与v2兼容,请尝试以下操作: powershell -version 2 "echo foobar" > NUL 否则,重定向到实际文件并在之后删除该文件: powershell "echo foobar" > "%TEMP%NUL-bug-workaround" & del "%TEMP%NUL-bug-workaround" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- unit-testing – 以编程方式将.reg文件合并到win32注册表中
- 如何模拟$window单元测试AngularJS服务?
- 32位Windows 7上的Java 7 – Java Webstart – 无法加载资源
- 如何确定dll文件是使用Delphi还是Lazarus编译为x64或x86位
- windows – 有没有办法在PowerShell中从头开始创建ACL,而不
- Win2003服务器安全加固设置--进一步提高服务器安全性
- Windows 8显然从压缩的HTTP响应中删除内容编码头
- win2003 vps IIS6中添加站点并绑定域名的配置方法
- RocketMQ在windows环境下的安装
- Windows上的UDP多播故障排除
推荐文章
站长推荐
- 有没有快速的方法来创建文件的Windows快捷方式,而
- 如何在Windows中查看文件的硬链接?
- windows-8 – Windows 8上的Windows Mobile / Em
- compiler-errors – 错误:DEP0500
- windows-8 – 尽管代码正确,Windows 8 Metro Til
- 导出到Microsoft Excel(2007)时,ColdFusion(9)在
- windows-server-2003 – w32tm / query / config
- 如何从rootkit /后门/僵尸网络等检查Linux服务器
- active-directory – 如何配置非管理员帐户以使用
- windows-server-2003 – 如何强制服务器上的打印
热点阅读