为什么PowerShell没有实现"<"输入重定向?

39

为什么PowerShell没有实现输入重定向

要像这样做:

mysql -u root < create.sql

我不得不切换到"cmd.exe"。

在PowerShell中是否有其他方法可以实现此操作?

请注意,输出重定向">"是在PowerShell中实现的。在回答之前,请考虑这一点。


3
既然你的例子是将脚本作为管道传递给 mysql,我想我应该提醒你,如果你尝试使用 Powershell 来传递备份,请参考这个链接 - Joel B Fant
这正是我正在寻找的。虽然不是最好的解决方案,但是一个不错的技巧,而无需切换回dos-prompt。 - Andriy Drozdyuk
1
一年半过去了,我仍然没有得到关于为什么没有实现输入重定向的具体问题的答案。 - Joel B Fant
2个回答

12

虽然我不完全确定这个问题是否适合在Stack Overflow上提问,但你是否查看过PS Cmdlet的Get-Content?在TechNet的例子中了解一下如何使用它,可以参考:Using the Get-Content Cmdlet

示例:

Get-Content c:\scripts\test.txt | Foreach-Object {Get-Wmiobject -computername $_ win32_bios}

更新:上面提供的 TechNet 链接已经失效,但是 Chad Miller 在评论中提到了 Scripting Guy 的文章 Working Around Legacy Redirection Issues with PowerShell,该文章提供了三种选项:- 使用 CMD /cEchoGet-Content


8
重定向在 Scripting Guys 的一篇文章中使用 Get-Content 进行了介绍。 http://blogs.technet.com/b/heyscriptingguy/archive/2011/07/16/working-around-legacy-redirection-issues-with-powershell.aspx - Chad Miller
5
@Chad Miller,当然 - 这对powershell用户来说是显而易见的地方!/结束讽刺。谢谢。 - Andriy Drozdyuk
ss64.com也是一个显而易见的查找位置。尽管可以承认的是,http://ss64.com/ps/syntax-redirection.html上的答案只是隐含的。 - nik.shornikov

0

你读了Jeffery Snover的评论吗?他谈到了原因。 - Matt
我并不特别关注输入重定向的原因,也对Unix与Windows工具之间的区别不感兴趣。我只是对一个特殊的工具感到好奇。毕竟,“>”输出重定向已经被实现了! - Andriy Drozdyuk
我在更一般地考虑这个问题,即为什么PowerShell的某些方面没有实现与其他shell相同的功能。我并没有说它回答了为什么<没有被实现,但它提供了设计过程的见解。 - Matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接