2011-07-20 46 views
24

爲什麼input redirection未在PowerShell中實現?爲什麼在PowerShell中沒有實現「<」輸入重定向?

爲了做這樣的事情:

mysql -u root < create.sql 

我不得不切換到 「CMD.EXE」。

在PowerShell中有這樣做的另一種方法嗎?

請注意,輸出重定向「>」在PowerShell中實現。在給出答案之前請考慮這一點。

+2

既然你給腳本管道'mysql'作爲你的例子,我想我應該[指向你這個](http://stackoverflow.com/questions/6365191/import-large-mysql-sql-file- on-windows-with-force/6365553#6365553)以防您嘗試使用Powershell進行管道備份。 –

+0

這正是我所尋找的。當然,不是最好的解決方案,而是一個很好的黑客,而不必切換回dos提示符。 – drozzy

+0

一年半後,我仍然沒有回答這個爲什麼沒有實現輸入重定向的具體問題。 –

回答

10

雖然我不完全確定這個問題屬於堆棧溢出,你看過PS Cmdlet的Get-Content?看看它在TechNet的示例中如何使用Using the Get-Content Cmdlet

例子:

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

更新:上面的鏈接的TechNet壞了,但乍得米勒腳本專家的帖子在評論中提及Working Around Legacy Redirection Issues with PowerShell給出3個選擇: - use CMD /cEcho,並獲取內容。

+1

這看起來倒退了:-( – drozzy

+6

重定向在使用Get-Content的腳本專員文章中進行了討論http://blogs.technet.com/b/heyscriptingguy/archive/2011/07/16/working-around-legacy-redirection-問題與powershell.aspx –

+2

@Chad米勒,哦,當然 - 這將是PowerShell的用戶顯然看!/ end-sarcasm。謝謝 – drozzy

1

我不認爲MySQL會接受通過管道傳遞給它的PowerShell對象 - 正如Stephan所說,你可以使用Get-Content並將其傳遞給下一個命令。

檢查出堆棧溢出問題Is PowerShell ready to replace my Cygwin shell on Windows?爲什麼他們沒有複製Unix shell的原因。

+0

對不起,但是有什麼原因呢?它只是比較而已。 .. – drozzy

+0

您是否看過Jeffery Snover的評論?他談到了原因。 – Matt

+0

我沒有看到輸入重定向的原因,我對Unix和Windows工具真的不感興趣。對某種特定的工具非常好奇。畢竟,輸出重定向「>」已經實現了! – drozzy

相關問題