1

我正在尝试为已安装的 ISO 运行 Compare-Object。这 3 行与 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 中运行相同的行时,出现以下错误。我究竟做错了什么?有没有人有任何建议,我将不胜感激。

比较对象:无法将参数绑定到参数“ReferenceObject”,因为它为空。在 line:1 char:55 + ... ODriveletter = (Compare-Object -ReferenceObject $DriveLetters -Differ ... + ~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [比较-Object],ParameterBindingValidationException + FullyQualifiedErrorId:ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObjectCommand

4

1 回答 1

1

正如评论中所确定的,您的$DriveLetters数组至少包含一个$null-value 项。您可以使用以下方法过滤掉没有价值的项目Where-Object

$DriveLetters = (Get-Volume).DriveLetter |Where-Object { $_ }
于 2016-01-15T16:20:56.987 回答