我得到了一個.patch文件,我必須應用到一些源代碼。不幸的是,我在Windows上運行。於是我從http://gnuwin32.sourceforge.net/packages/patch.htm安裝了補丁程序的Windows端口,並啓動了PowerShell。但是我沒有完成,它總是以錯誤結束。 (除了這一事實的GnuWin32沒有「路徑」內安裝...)Windows PowerShell:如何執行標準輸入重定向並將參數正確傳遞給命令?
首先嚐試:
PS D:\eclipsews\fix17435> "C:\Program Files (x86)\GnuWin32\bin\patch.exe" < 17435.patch
Der Operator "<" wird noch nicht unterstützt.
Bei Zeile:1 Zeichen:50
+ "C:\Program Files (x86)\GnuWin32\bin\patch.exe" < <<<< bug-1032189.patch
+ CategoryInfo : ParserError: (<:OperatorToken) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported
是的,我的電源外殼完美地講德語,所以googleing沒有按錯誤消息」在網絡上導致可能可用的解決方案。 ☹
閱讀here on StackOverflow,我試圖用「貓」相當於:「獲取內容」,但最終在一個錯誤,也:。順便說一句
PS D:\eclipsews\fix17435> Get-Content .\17435.patch | "C:\Program Files (x86)\GnuWin32\bin\patch.exe"
Ausdrücke sind nur als erstes Element einer Pipeline zulässig.
Bei Zeile:1 Zeichen:82
+ Get-Content .\bug-1032189.patch | "C:\Program Files (x86)\GnuWin32\bin\patch.exe" <<<<
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpressionsMustBeFirstInPipeline
,稱「獲取內容\ 17435.patch「獨立作品。第三,我檢查了「補丁」手冊,如果可以指定一個輸入文件作爲參數,以避免惱人的重定向問題:是的,使用-i選項。但是,這似乎也被阻止:
PS D:\eclipsews\fix17435> "C:\Program Files (x86)\GnuWin32\bin\patch.exe" -i 17435.patch
Sie müssen auf der rechten Seite des Operators "-" einen Wertausdruck angeben.
Bei Zeile:1 Zeichen:50
+ "C:\Program Files (x86)\GnuWin32\bin\patch.exe" - <<<< i bug-1032189.patch
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedValueExpression
如何在powershell上的標準輸入重定向和正確傳遞參數?有沒有一些文件的地方?
我發現了一些(討厭)的變通,但總比沒有好:創建一個新的鏈接,點它patch.exe。然後編輯鏈接,並在「目標」文本框中輸入-i name-of-your-input-file.patch選項到/ patch.exe後面。不幸的是,設置工作目錄並不能幫助修補程序找到文件,所以你必須在DOS風格的窗口中提供名稱,你可以通過點擊左上角的圖標粘貼到剪貼板,選擇'編輯'→'粘貼' - 不是英俊的,但比沒有好。 – Paramaeleon