|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] CMD-скрипт для удаление пустых ключей реестра |
|
CMD/BAT - [решено] CMD-скрипт для удаление пустых ключей реестра
|
Новый участник Сообщения: 2 |
Профиль | Отправить PM | Цитировать Как сделать скрипт который будет удалять пустой ключ реестра, т.е. если в ключе (ветке) нет ничего.
Например, нужно удалить HKEY_LOCAL_MACHINE\SOFTWARE\DataStore (ключ DataStore) если в нём нет ни значений ни других ключей т.е. если он полностью пуст. Существует ли возможность указать ключ для удаление в аргументах вызова скрипта? |
|
Отправлено: 21:46, 19-09-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить 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 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 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Вариант:
@echo off set "Key=%~1" for /f "delims=" %%a in ('reg query "%Key%" /s') do set "Val=%%a" if /i "%Val%"=="%Key%" ( reg delete "%Key%" /f echo Раздел %Key% удален. ) else ( echo Раздел %Key% не пуст. ) Пример запуска из комстроки: |
Последний раз редактировалось SendMessage, 20-09-2011 в 14:34. Отправлено: 14:22, 20-09-2011 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Да, это проще и работает. Единственно — если раздел отсутствует, то сообщение «Раздел … не пуст.» будет нелогичным.
|
Отправлено: 17:48, 20-09-2011 | #4 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Большое спасибо за помощь.
|
|
Отправлено: 19:16, 20-09-2011 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Удаление пустых каталогов через CMD | toro | Скриптовые языки администрирования Windows | 11 | 08-12-2022 12:35 | |
CMD/BAT - [решено] Удаление пустых каталогов и подкаталогов через CMD | Andzzzz | Скриптовые языки администрирования Windows | 5 | 29-08-2013 16:00 | |
CMD/BAT - [решено] Удаление ключей реестра | gen0m.rsw | Скриптовые языки администрирования Windows | 1 | 30-07-2010 13:14 | |
CMD/BAT - [решено] CMD\BAT для сохранения ключей реестра. | belohortvladimir | Скриптовые языки администрирования Windows | 5 | 14-06-2010 14:01 | |
Любой язык - [решено] Нужен скрипт cmd,vbs,PowerShell для проверки списка пользователей и их удаление из AD | alex_frog | Скриптовые языки администрирования Windows | 6 | 22-07-2009 18:41 |
|