嵌套for循环用于创建注册表路径

时间:2015-07-07 11:05:23

标签: powershell for-loop registry

这个想法是,创建一个脚本来清理培训中心的Windows客户端。我想使用for循环在注册表中创建我想要删除的路径。

这就是我所拥有的:

$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

}
}

我期待发生的事情:

For循环创建如下命令:

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

但一切都没有发生。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

将Join-Path添加到您的脚本以处理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
    }
}
}