2012-05-18 3 views
0

Может ли кто-нибудь сказать мне, почему приведенный ниже код не работает? Я хочу закончить с дисками, которые соответствуют как, например, F: и G:PowerShell: Сравнение 2 переменных

Я знаю его что-то простое, но не могу понять. Быстрое объяснение будет приветствоваться. Благодаря

$USBDrives =$null 
$WMIUSBDrives="E:","F:","G:" 
$SystemDrives="D:","F:","G:" 
$USBDrives = $SystemDrives | Where {$_ -contains $WMIUSBDrives} 
$USBDrives 

ответ

0

Для того чтобы это сработало, я думаю, что $ WMIUSBDrives и $ SystemDrives должны совпадать.

Попробуйте вместо этого:

$USBDrives =$null 
$WMIUSBDrives="E:","F:","G:" 
$SystemDrives="D:","F:","G:" 
foreach($drive in $WMIUSBDrives) 
{ 
    if($SystemDrives -contains $drive){$USBDrives += $drive} 
} 
$USBDrives 
+0

ive обновил вопрос с дополнительной информацией, следующей за вашим ответом. Я хочу закончить с дисками, которые соответствуют обоим. $ USBDrives должен содержать «F:», «G:» – resolver101

+0

Привет, я обновил сценарий, который он теперь возвращает: F: G: – Arcass

3

Вы действительно должны использовать этот другой путь вокруг ... :)

$USBDrives = $SystemDrives | Where {$WMIUSBDrives -contains $_} 
$USBDrives 

Оператор, который работает так, как вы хотите, -in, который был добавлен в v3. HTH Bartek

Смежные вопросы