我得到了一个.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