Я хочу сравнить локальный текстовый файл с онлайн-файлом через PowerShell, содержимое двух файлов одинаковое.
Я знаю, что должен использовать командлет Compare-Object
для сравнения двух файлов, и я обнаружил, что могу получить содержимое сетевого файла с помощью Invoke-WebRequest
командлета (https://www.quora.com/How-do-I-download-URL-content-using-Get-Content-in-PowerShell-Script)., но он не работает должным образом. вывести содержимое файла онлайн-версии.
$item1 = cat $path
$item2 = Invoke-WebRequest -Uri $URL | select -ExpandProperty Content
# No working as expected
Compare-Object -ReferenceObject $item1 -DifferenceObject $item2
Обновление
После отладки я обнаружил, что тип возвращаемого значения System.Array
при использовании Get-Content
(cat
), но при использовании Invoke-WebRequest
это String
.
PS C:\> <b>$item1.GetType()</b>
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
PS C:\> <b>$item2.GetType()</b>
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object