|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как с помощью bat скрипта объединить reg файлы в один? |
|
CMD/BAT - Как с помощью bat скрипта объединить reg файлы в один?
|
Новый участник Сообщения: 41 |
Всем привет. Есть такой мини bat скрипт. Который ищет нужный раздел, сохраняет в файл и после удаляет его(В данном случае я пока поставил echo что бы не удалял)
Вопрос как сделать что бы всё сохранялось в один файл без замены? Ну или как после, все файлы объединить в один? При этом что бы не было такой строки(Windows Registry Editor Version 5.00) каждый раз при копировании. Скрытый текст
@echo on for /f "tokens=*" %%b in ('reg query "HKLM\SOFTWARE\test1" /s /f "test.314" /k ^| find /i "test.314"') do ( reg export "%%b" D:\Desktop\backup%time:~6,2%%time:~9,2%%time:~12,2%.reg /y echo reg delete "%%b" /f ) for /f "tokens=*" %%b in ('reg query "HKLM\SOFTWARE\test1" /s /f "test.313" /k ^| find /i "test.313"') do ( reg export "%%b" D:\Desktop\backup%time:~6,2%%time:~9,2%%time:~12,2%.reg /y echo reg delete "%%b" /f ) Объединять пробовал так, но как выше описал способ не подходит. Скрытый текст
Суть всего: Найти нужный параметр/ветку, сделать резервную копию, удалить. Если захотел восстановить всё что удалил, всегда можно добавить обратно. С поиском и удалением нет проблем, с резервной копией есть. Не понятно как писать всё в один файл что бы потом не объединять всё. |
|
Отправлено: 01:52, 10-07-2024 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Решил сам))
но, пока не понял как тоже самое сделать на powershell что бы было это компактнее, привык в bat, там некоторые вещи такие проще и пишутся в одну две строки, на powershell же получается довольно таки много кода Часто комбинирую и то и то, работает, но да понимаю проще писать на чем то одном)) Файл 1(bat): Скрытый текст
@echo off set /a i=0 for /f "tokens=*" %%b in ('reg query "HKLM\SOFTWARE\test1" /s /f "test.313" /k ^| find /i "test.313"') do ( set /a i+=1 reg export "%%b" %~dp0\reg_backup\backup%i%.reg /y echo reg delete "%%b" /f ) for /f "tokens=*" %%b in ('reg query "HKLM\SOFTWARE\test1" /s /f "test.314" /k ^| find /i "test.314"') do ( set /a i+=1 reg export "%%b" %~dp0\reg_backup\backup%i%.reg /y echo reg delete "%%b" /f ) for /f "tokens=*" %%b in ('reg query "HKLM\SOFTWARE\test1" /s /f "test.315" /k ^| find /i "test.315"') do ( set /a i+=1 reg export "%%b" %~dp0\reg_backup\backup%i%.reg /y echo reg delete "%%b" /f ) powershell -File "%~dp0\reg_backup\33.ps1" Файл 2(PowerShell): Скрытый текст
$ScriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path $regFiles = Get-ChildItem -Path $ScriptPath -Filter *.reg | Select-Object -ExpandProperty FullName $combinedRegFile = Join-Path -Path $ScriptPath -ChildPath "combined.reg" Get-Content $regFiles[0] | Set-Content $combinedRegFile $regFiles | Select-Object -Skip 1 | ForEach-Object { Get-Content $_ | Select-Object -Skip 2 | Add-Content $combinedRegFile } Get-ChildItem -Path $ScriptPath -Filter *.reg | Where-Object { $_.FullName -ne $combinedRegFile } | Remove-Item По итогу получаем правильный файл: Скрытый текст
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\test1\test.313_3100] "1"="21" [HKEY_LOCAL_MACHINE\SOFTWARE\test1\test.314_3101] "2"="12" [HKEY_LOCAL_MACHINE\SOFTWARE\test1\test.315_3102] "32"="13" Глобально ещё не проверял, так тестово только, но вроде работает. Если напишите более простой вариант только на powershell будет отлично. Сам в скриптах мало понимаю, но изучаю потихоньку. Ну или может подскажете где ошибки и как лучше сделать. Ещё тоже самое для файлов хочу сделать)) |
Последний раз редактировалось ivan456, 10-07-2024 в 05:13. Отправлено: 05:06, 10-07-2024 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
fascinating rhythm Сообщения: 6562
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось DJ Mogarych, 10-07-2024 в 17:13. Отправлено: 17:01, 10-07-2024 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Как объединить два скрипта в один? | temphard | Скриптовые языки администрирования Windows | 5 | 09-12-2019 11:17 | |
CMD/BAT - Как объединить в один все текстовые файлы заданной папки? | ruslaw | Скриптовые языки администрирования Windows | 2 | 15-01-2018 15:24 | |
CMD/BAT - Можно ли средствами cmd объединить однотипные XML-файлы в один? | uzlprog | Скриптовые языки администрирования Windows | 4 | 09-06-2016 08:41 | |
CMD/BAT - Как объеденить reg, bat в один exe? | danneo | Программирование и базы данных | 12 | 03-07-2012 00:23 | |
Как объединить два скрипта в один | Fantasy22 | AutoIt | 1 | 04-12-2009 12:32 |
|