本机PowerShell等效于UNIX差异和补丁

时间:2015-06-17 10:39:50

标签: unix powershell

我要求可以动态修补文件作为脚本的一部分。

为了使脚本更具可读性,我想以类似于UNIX“diff”和“patch”方法的方式实现它。在标准UNIX系统上,diff可以生成一个特殊格式的文本文件,该文件表示两个文件之间的差异。这可能会被“patch”与要修改的文件一起使用,以便以干净和直接的方式生成更改的文件。

似乎在PowerShell中没有直接的方法。我见过的选项是使用多行正则表达式 - 难以构建和解释,使用整个文件并逐行处理或将我希望在脚本中创建的新文件编码为Base64字符串和只需将其解码为目标文件即可。

虽然Compare-Object看起来好像可以生成适当的diff对象,但似乎没有简单的方法可以使用Compare-Object的输出将更改应用于字符串数组。

1 个答案:

答案 0 :(得分:1)

Compare-Objectdiff最接近,并且没有与PowerShell内置的patch等效的内容。如果您需要该功能,我建议您使用diffpatch的Windows端口。