我有一个 .patch 文件,我必须将它应用到一些源代码上。不幸的是,我在 Windows 上运行。所以我从http://gnuwin32.sourceforge.net/packages/patch.htm安装了补丁程序的 Windows 端口,然后打开了 PowerShell。但我没有完成,它总是以错误告终。(除了 GnuWin32 没有安装在“路径”中的事实......)
第一次尝试:
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
是的,我的 Power Shell 会说一口流利的德语,所以在网上搜索错误消息并不会导致(可能是可用的)解决方案。☹</p>
在这里阅读StackOverflow时,我尝试使用“cat”等价物:“Get-Content”,但这也会导致错误:
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
顺便说一句,调用“Get-Content .\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上的stdin重定向和传递参数如何正确完成?任何地方都有一些文档吗?