我正在构建另一个Web服务器“web2”,该服务器必须具有与Web服务器“web1”相同的配置
因此,在安装了某些软件之后,我需要在“web2”服务器上编辑“web.config”以匹配“web1”服务器中的服务器
我是从笔记本电脑上执行此操作的,因此我将两个“web.config”文件都复制到了运行以下命令的笔记本电脑上:
$w1="web1.server.local"
$w2="web2.server.local"
$myCred=(Get-Credential -credential "myAD\myUser")
$file="C:\path\to\my\web.config"
Invoke-Command -ComputerName $w1 -Credential $myCred (Get-Content $args[0]) -ArgumentList $file | Set-content web1.txt
Invoke-Command -ComputerName $w2 -Credential $myCred (Get-Content $args[0]) -ArgumentList $file | Set-content web2.txt
好的,现在我从两个服务器上分别拥有两个“web.config”文件:web1.txt和web2.txt
在这里,您可以看到文件中的差异的图片(我使用notepad ++获得了),因为您看到只有4个差异。
请注意我将文件修整为每个只有42行
然后,我尝试使用“比较对象” cmdlet比较两个文件,但是我没有获得准确的信息:
PS C:\> Compare-Object (Get-Content .\web1.txt) (Get-Content .\web2.txt)
InputObject SideIndicator
----------- -------------
<=
<=
奇怪的是,如果我仅将“”更改为“--> b”,则输出为:
PS C:\> Compare-Object (Get-Content .\web1.txt) (Get-Content .\web2.txt)
InputObject SideIndicator
----------- -------------
<!-- =>
--> =>
<!--a <=
-->b <=
<=
<=
我尝试检查文件的编码,在UTF-8中创建它们,我还删除了xml文件的很多块,删除了很多括号(在两个文件上),但从未显示出区别。
我有什么想念的吗?
为什么“比较对象”无法分辨普通文件是否包含额外的“-->”或“