2015-07-07 9 views
0

Идея состоит в том, чтобы создать скрипт для очистки клиентов Windows в учебном центре. Я хочу использовать для циклов для создания путей в реестре, которые я хочу удалить.Вложенный цикл цикла для создания путей реестра

Вот что у меня есть:

$OfficePath = "HKCU:\Software\Microsoft\Office\" 
$OfficeVer = "11.0" , "12.0" , "14.0", "15.0" 
$OfficeSlice = "word", "excel" , "Outlook" , "onenote" , "Access", "Powerpoint" 

for ($ver = 0; $ver -lt $OfficeVer.Count; $ver++) 
{ 
for ($slice = 0; $slice -lt $OfficeSlice.Count; $slice++) 
{ 
    Remove-Item $OfficePath\$officever[$ver]\$OfficeSlice[$slice] -WhatIf 

} 
} 

Что я ожидаю случаться:

Для петель создания команды, как:

Remove-Item "HKCU:\Software\Microsoft\Office\11.0\Word" 
Remove-Item "HKCU:\Software\Microsoft\Office\11.0\Excel" 
... 

Но ничего не происходит вообще.

Спасибо за помощь.

ответ

1

Добавить Join-Path в скрипт для решения Пути-Join:

$OfficePath = "HKCU:\Software\Microsoft\Office\" 
$OfficeVer = "11.0" , "12.0" , "14.0", "15.0" 
$OfficeSlice = "word", "excel" , "Outlook" , "onenote" , "Access", "Powerpoint" 

for ($ver = 0; $ver -lt $OfficeVer.Count; $ver++) 
{ 
for ($slice = 0; $slice -lt $OfficeSlice.Count; $slice++) 
{ 
    $Path = (Join-path (Join-Path $OfficePath $officever[$ver]) $OfficeSlice[$slice]) 
    if (Test-Path $Path) 
    { 
    Remove-Item $Path -WhatIf 
    } 
} 
} 
Смежные вопросы