我正在尝试为已安装的ISO运行Compare-Object。这三行适用于Windows 8.1中的v 4.0。
$Driveletters = (Get-Volume).Driveletter
$SetupDriveLetter = (Mount-DiskImage -ImagePath "Mypath")
$ISODriveletter = (Compare-Object -ReferenceObject $DriveLetters -DifferenceObject (Get-Volume).DriveLetter).InputObject
当我在Windows 10中运行相同的行时,出现以下错误。 我究竟做错了什么?有没有人有任何建议我真的很感激。
Compare-Object:无法将参数绑定到参数'ReferenceObject',因为它为null。 在行:1字符:55 + ... ODriveletter =(Compare-Object -ReferenceObject $ DriveLetters -Differ ... + ~~~~~~~~~~~~~ + CategoryInfo:InvalidData :( :) [Compare-Object],ParameterBindingValidationException + FullyQualifiedErrorId:ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObjectCommand
答案 0 :(得分:0)
根据评论中的确定,您的$DriveLetters
数组至少包含一个$null
- 值项。您可以使用Where-Object
过滤掉没有价值的商品:
$DriveLetters = (Get-Volume).DriveLetter |Where-Object { $_ }