| $file1 = GI C:\TEMP\schlecht\Settings.xml | | $file2 = GI C:\TEMP\gut\Settings.xml | | function Compare-Files{ | | param( | | $file1,$file2,[switch]$IncludeEqual) | | $content1 = Get-Content $file1 | | $content2 = Get-Content $file2 | | $comparedLines = Compare-Object $content1 $content2 -IncludeEqual:$IncludeEqual | | | group { $_.InputObject.ReadCount } | | $comparedLines | foreach { | | $curr=$_ | | switch ($_.Group[0].SideIndicator){ | | “==” { $right=$left = $curr.Group[0].InputObject;break} | | “=>” { $right,$left = $curr.Group[0].InputObject,$curr.Group[1].InputObject;break } | | “<=" { $right,$left = $curr.Group[1].InputObject,$curr.Group[0].InputObject;break } | | } | | [PSCustomObject] @{ | | Line = $_.Name | | Left = $left | | Right = $right | | } | | } | | }COPY |
下图是报警
Get-Content : Cannot bind argument to parameter 'Path' because it is null.
At C:\TEMP\PS\test_1.ps1:16 char:26
+ $content2 = Get-Content $file2
+ ~~~~~~
+ CategoryInfo : InvalidData: (:) [Get-Content], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.GetContentCommand
Compare-Object : Cannot bind argument to parameter 'DifferenceObject' because it is null.
At C:\TEMP\PS\test_1.ps1:17 char:44
+ $comparedLines = Compare-Object $content1 $content2 -IncludeEqual:$IncludeEqual ...
+ ~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Compare-Object], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObjectCommand
Cannot index into a null array.
At C:\TEMP\PS\test_1.ps1:20 char:2
+ $curr=$_
+ ~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : NullArray |