Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


ADSL3MD, для начала — закрепите терминологию, чтобы не возникало неоднозначностей в понимании. С большой долей уверенности предположу, что речь идёт всё-таки о разделе.

Можно попробовать и на CMD, но там будет некоторая зависимость от версии reg.exe. Например, для версии 3.0:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSubKey=%~1

if not defined sSubKey (
	echo Usage: %~nx0 ^<Registry SubKey^>
	exit /b 255
)

reg.exe query "%sSubKey%" 1>nul 2>&1 || (
	echo Registry Subkey [%sSubKey%] not found
	exit /b 1
)

for /f %%i in (
    'reg.exe query "%sSubKey%" /s ^| find.exe /i /v "" /c'
) do set /a sLines = %%i

if defined sLines if %sLines% equ 4 reg.exe delete "%sSubKey%" /f 1>nul

endlocal
exit /b 0
В WSH («WScript.Shell»/WMI) с этим совсем плохо (всё упирается в ошибки реализации при работе с Default-значением). Проще всего на PowerShell, наподобие:
Код: Выделить весь код
Param
(
    [parameter(
        Mandatory = $True,
        Position  = 0
    )]
    [String]
    $SubKey
)

$sSubKey = "Registry::" + $SubKey

if (Test-Path -Path $sSubKey) {
    $oPath = Get-Item -Path $sSubKey

    if (($oPath.SubKeyCount -eq 0) -and ($oPath.ValueCount -eq 0)) {
        try {
            Remove-Item -Path $oPath.PSPath
        } catch { }
    }
} else {
    Write-Host "Not found registry subkey [$SubKey]"
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:14, 20-09-2011 | #2