【问题标题】:Why is "<" input redirect not implemented in PowerShell?为什么在 PowerShell 中没有实现“<”输入重定向?
【发布时间】:2011-07-20 13:53:03
【问题描述】:

为什么input redirection 没有在 PowerShell 中实现?

要做这样的事情:

mysql -u root < create.sql

我不得不切换到“cmd.exe”。

在 PowerShell 中是否有其他方法可以做到这一点?

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

【问题讨论】:

  • 既然你给mysql 提供了一个管道脚本作为你的例子,我想我应该point you to this 以防你尝试使用Powershell 来管道备份。
  • 这正是我想要的。当然,这不是最好的解决方案,而是一个不错的 hack,无需切换回 dos-prompt。
  • 一年半过去了,为什么没有实现输入重定向这个具体问题我仍然没有答案。

标签: powershell


【解决方案1】:

虽然我不完全确定这个问题是否属于 Stack Overflow,但您是否查看过 Get-Content 的 PS Cmdlet?看看它是如何在 TechNet 上的示例中使用的 Using the Get-Content Cmdlet

例子:

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

更新:上面指向 TechNet 的链接已损坏,但 Chad Miller 脚本专家在评论中提到 Working Around Legacy Redirection Issues with PowerShell 提供了三个选项:-use CMD /cEcho 和 Get-Content。

【讨论】:

【解决方案2】:

我不认为 MySQL 会接受通过管道传输给它的 PowerShell 对象 - 正如 Stephan 所说,您可以使用 Get-Content 并将其通过管道传输到下一个命令。

查看 Stack Overflow 问题 Is PowerShell ready to replace my Cygwin shell on Windows?,了解他们没有复制 Unix shell 的原因。

【讨论】:

  • 您阅读 Jeffery Snover 的评论了吗?他谈到了原因。
  • 我看不出任何关于输入重定向的原因,而且我真的对 Unix 与 Windows 工具不感兴趣。我只是对一个特定的工具感到好奇。毕竟实现了输出重定向">"!
  • 我更笼统地考虑了为什么 powershell 的某些方面没有实现与其他 shell 相同的功能的问题。我没有说它回答了为什么
猜你喜欢
  • 2017-07-30
  • 2015-01-21
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 2016-07-09
  • 2012-07-11
相关资源
最近更新 更多