drugo Posted April 21, 2024 Share Posted April 21, 2024 Hi i would to export some registry key with a bat file but in incremental way (keep many reg files , with a name and a suffix for example export1.reg export2.reg and so on ) ? I 'm thinking about a bat file ,just because i can use the windows 11 or 10 task manager and run every x hours or every day i don't want to export the entire registry but only 1 key or 2 ,with all the subkeys and keep all them I use a free portable backup jubut portable , cool program ,but only for files, and macrium for image i'm looking for a script / bat , can a script/bat file do it? I have't found a free program to export them thanks Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/ Share on other sites More sharing options...
Guest Posted April 21, 2024 Share Posted April 21, 2024 @echo off setlocal enabledelayedexpansion set /p "numKeys=Enter the number of registry keys to export: " set /p "backupDir=Enter the backup directory path: " if not exist "%backupDir%" mkdir "%backupDir%" set "baseFileName=export" set "fileExt=.reg" set "counter=1" for /l %%i in (1,1,%numKeys%) do ( set /p "key%%i=Enter the location of registry key #%%i: " ) :loop set "fileName=%baseFileName%!counter!%fileExt%" set "filePath=%backupDir%\!fileName!" for /l %%i in (1,1,%numKeys%) do ( reg export "!key%%i!" "!filePath!" /y ) set /p "continue=Do you want to export another set of registry keys? (Y/N): " if /i "!continue!"=="Y" ( set /a "counter+=1" goto loop ) Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896791 Share on other sites More sharing options...
drugo Posted April 21, 2024 Author Share Posted April 21, 2024 On 21/04/2024 at 10:15, cacoe said: hi Cacoe may i a question ? let's say i want to backup these keys Quote HKEY_CURRENT_USER\Software\Mozilla to X:\backupregistry is your script correct ? I have added HKEY_CURRENT_USER\Software\Mozilla the backup folder is X:\backupregistry about the number of registry key to export what does it mean how many backups? thanks Caoce @echo off setlocal enabledelayedexpansion set /p "numKeys=Enter the number of registry keys to export: " set /p "backupDir=x:\backupregisry: " if not exist "%backupDir%" mkdir "%backupDir%" set "baseFileName=export" set "fileExt=.reg" set "counter=1" for /l %%i in (1,1,%numKeys%) do ( set /p "key%%i=HKEY_CURRENT_USER\Software\Mozilla #%%i: " ) :loop set "fileName=%baseFileName%!counter!%fileExt%" set "filePath=%backupDir%\!fileName!" for /l %%i in (1,1,%numKeys%) do ( reg export "!key%%i!" "!filePath!" /y ) set /p "continue=Do you want to export another set of registry keys? (Y/N): " if /i "!continue!"=="Y" ( set /a "counter+=1" goto loop ) Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896797 Share on other sites More sharing options...
binaryzero Posted April 21, 2024 Share Posted April 21, 2024 ## Export registry key # Specify registry key $registryKey = "HKEY_CURRENT_USER\Software\Mozilla" # Specify the path to save .reg file $exportPath = "X:\backupregistry\Mozilla.reg" # Export the registry key Invoke-Expression -Command "reg export `"$registryKey`" `"$exportPath`"" # Check if the export was successful if (Test-Path -Path $exportPath) { Write-Host "Registry key exported successfully." } else { Write-Host "Failed to export registry key." } Save as <filename>.ps1, run with PowerShell. +Nik Louch and Yonah 2 Share Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896809 Share on other sites More sharing options...
drugo Posted April 21, 2024 Author Share Posted April 21, 2024 On 21/04/2024 at 13:44, binaryzero said: ## Export registry key # Specify registry key $registryKey = "HKEY_CURRENT_USER\Software\Mozilla" # Specify the path to save .reg file $exportPath = "X:\backupregistry\Mozilla.reg" # Export the registry key Invoke-Expression -Command "reg export `"$registryKey`" `"$exportPath`"" # Check if the export was successful if (Test-Path -Path $exportPath) { Write-Host "Registry key exported successfully." } else { Write-Host "Failed to export registry key." } Save as <filename>.ps1, run with PowerShell. Hi @binaryzero @cacoe if i click on run with powershell it does work ,I have tried even in power shell ISE and the error translated in English with google translator is Failed to load file X:\backupregistryJriver\eportaregistryJriver.ps1. Script execution is disabled on your system. For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170. + CategoryInfo : Protection error: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : UnauthorizedAccess here a command Quote Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine Undefined so i opened powershell as administrator windows 11 pro , and copied everything it does create it but only 1 registry backup i would like to create many backups and only 1 could be make maybe with the bat/cmd files many files (i have no limit)? thanks Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896833 Share on other sites More sharing options...
binaryzero Posted April 21, 2024 Share Posted April 21, 2024 Set-ExecutionPolicy unrestricted # Import CSV file $csvData = Import-Csv -Path "X:\backupregistry\regkeys.csv" # Backup directory $backupDir = "X:\backupregistry" # Check the backup directory exists if (!(Test-Path -Path $backupDir)) { New-Item -ItemType Directory -Path $backupDir | Out-Null } # Loop through each registry key in the CSV file foreach ($row in $csvData) { $key = $row.RegistryKey # Define the backup file path $backupFile = Join-Path -Path $backupDir -ChildPath ("$(($key -replace '\\', '_')).reg") # Export the registry key Invoke-Expression -Command "reg export `"$key`" `"$backupFile`"" # Check if the .reg file has been created if (Test-Path -Path $backupFile) { Write-Output "Backup for $key created successfully at $backupFile" } else { Write-Output "Failed to create backup for $key" } } Save as ps1. Create a csv file with the header "RegistryKey", list key paths underneath. Yonah 1 Share Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896842 Share on other sites More sharing options...
drugo Posted April 21, 2024 Author Share Posted April 21, 2024 On 21/04/2024 at 17:52, binaryzero said: Set-ExecutionPolicy unrestricted hi i have set unrestricted by default Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine Undefined thanks Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896849 Share on other sites More sharing options...
Guest Posted April 21, 2024 Share Posted April 21, 2024 (edited) On 21/04/2024 at 10:09, drugo said: hi Cacoe may i a question ? let's say i want to backup these keys to X:\backupregistry is your script correct ? I have added HKEY_CURRENT_USER\Software\Mozilla the backup folder is X:\backupregistry about the number of registry key to export what does it mean how many backups? thanks Caoce @echo off setlocal enabledelayedexpansion set /p "numKeys=Enter the number of registry keys to export: " set /p "backupDir=x:\backupregisry: " if not exist "%backupDir%" mkdir "%backupDir%" set "baseFileName=export" set "fileExt=.reg" set "counter=1" for /l %%i in (1,1,%numKeys%) do ( set /p "key%%i=HKEY_CURRENT_USER\Software\Mozilla #%%i: " ) :loop set "fileName=%baseFileName%!counter!%fileExt%" set "filePath=%backupDir%\!fileName!" for /l %%i in (1,1,%numKeys%) do ( reg export "!key%%i!" "!filePath!" /y ) set /p "continue=Do you want to export another set of registry keys? (Y/N): " if /i "!continue!"=="Y" ( set /a "counter+=1" goto loop ) The number is simply the amount of keys you would like to save, so if you know you want to save 5 keys, enter 5, then you will proceed to get 5 prompts for 5 different key locations, then it will save to 5 different files to the backup location. All entries under each key will be saved to each file. Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896853 Share on other sites More sharing options...
drugo Posted April 21, 2024 Author Share Posted April 21, 2024 On 21/04/2024 at 19:05, cacoe said: The number is simply the amount of keys you would like to save, so if you know you want to save 5 keys, enter 5, then you will proceed to get 5 prompts for 5 different key locations, then it will save to 5 different files to the backup location. All entries under each key will be saved to each file. hi Cacoe but there is something doesn't work , might you please check it? thanks @echo off setlocal enabledelayedexpansion set /p "numKeys=5" set /p "backupDir=x:\backupregistry\" if not exist "%backupDir%" mkdir "%backupDir%" set "baseFileName=export" set "fileExt=.reg" set "counter=1" for /l %%i in (1,1,%numKeys%) do ( set /p "key%%i=HKEY_CURRENT_USER\Software\Mozilla" ) :loop set "fileName=%baseFileName%!counter!%fileExt%" set "filePath=%backupDir%\!fileName!" for /l %%i in (1,1,%numKeys%) do ( reg export "!key%%i!" "!filePath!" /y ) set /p "continue=Do you want to export another set of registry keys? (Y/N): " if /i "!continue!"=="Y" ( set /a "counter+=1" goto loop ) Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896863 Share on other sites More sharing options...
+Nik Louch Subscriber² Posted April 21, 2024 Subscriber² Share Posted April 21, 2024 Would it not make sense to just learn PowerShell? Literally so useful binaryzero and Yonah 2 Share Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896878 Share on other sites More sharing options...
Guest Posted April 21, 2024 Share Posted April 21, 2024 On 21/04/2024 at 19:41, drugo said: hi Cacoe but there is something doesn't work , might you please check it? thanks @echo off setlocal enabledelayedexpansion set /p "numKeys=5" set /p "backupDir=x:\backupregistry\" if not exist "%backupDir%" mkdir "%backupDir%" set "baseFileName=export" set "fileExt=.reg" set "counter=1" for /l %%i in (1,1,%numKeys%) do ( set /p "key%%i=HKEY_CURRENT_USER\Software\Mozilla" ) :loop set "fileName=%baseFileName%!counter!%fileExt%" set "filePath=%backupDir%\!fileName!" for /l %%i in (1,1,%numKeys%) do ( reg export "!key%%i!" "!filePath!" /y ) set /p "continue=Do you want to export another set of registry keys? (Y/N): " if /i "!continue!"=="Y" ( set /a "counter+=1" goto loop ) I don't see the issue, I tested it, it's a batch file, I ran it, set it to only do 1 key, selected a random key and it saved the contents to a reg file. What is not working? Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896889 Share on other sites More sharing options...
binaryzero Posted April 21, 2024 Share Posted April 21, 2024 On 22/04/2024 at 06:50, Dick Montage said: Would it not make sense to just learn PowerShell? Literally so useful This. I provided two code samples, with comments; up to them now... +Nik Louch and Yonah 2 Share Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896892 Share on other sites More sharing options...
drugo Posted April 22, 2024 Author Share Posted April 22, 2024 On 22/04/2024 at 00:24, cacoe said: I don't see the issue, I tested it, it's a batch file, I ran it, set it to only do 1 key, selected a random key and it saved the contents to a reg file. What is not working? hi Cacoe it does not save any reg files... i have tried even this key with all the sub keys for /l %%i in (1,1,%numKeys%) do ( set /p "key%%i=HKEY_CURRENT_USER\Software\J. River" ) maybe the problem is this set "baseFileName=export" set "fileExt=.reg" set "counter=1" i should set ? set "fileExt=backup.reg" thanks pal Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896921 Share on other sites More sharing options...
+Nik Louch Subscriber² Posted April 22, 2024 Subscriber² Share Posted April 22, 2024 On 22/04/2024 at 07:09, drugo said: set "fileExt=backup.reg" Obviously not, as ".reg" is a file extension and "backup.reg" is not. Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598896955 Share on other sites More sharing options...
binaryzero Posted April 22, 2024 Share Posted April 22, 2024 On 22/04/2024 at 01:52, binaryzero said: # Import CSV file $csvData = Import-Csv -Path "X:\backupregistry\regkeys.csv" # Backup directory $backupDir = "X:\backupregistry" # Check the backup directory exists if (!(Test-Path -Path $backupDir)) { New-Item -ItemType Directory -Path $backupDir | Out-Null } # Loop through each registry key in the CSV file foreach ($row in $csvData) { $key = $row.RegistryKey # Define the backup file path $backupFile = Join-Path -Path $backupDir -ChildPath ("$(($key -replace '\\', '_')).reg") # Export the registry key Invoke-Expression -Command "reg export `"$key`" `"$backupFile`"" # Check if the .reg file has been created if (Test-Path -Path $backupFile) { Write-Output "Backup for $key created successfully at $backupFile" } else { Write-Output "Failed to create backup for $key" } } Save ^ as "BackupRegistryKeys.ps1". Create a CSV file called "regkeys.csv", save it in X:\Backupregistry, copy and paste the below. RegistryKey, HKEY_CURRENT_USER\Software\Mozilla, HKEY_CURRENT_USER\Software\J. River, (or use Excel, save as .csv) Open PowerShell, run the script, .\BackupRegistryKeys.ps1. Tada When you want to add more registry keys, add them to the csv file. No need to hardcode paths in the script... Yonah and drugo 2 Share Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598897010 Share on other sites More sharing options...
grunger106 Posted April 22, 2024 Share Posted April 22, 2024 (edited) Tidy little script that - (+Extra credit for commenting it properly👍) Still surprises me there is no export-item functionality for the registry in PowerShell, you can do everything else - but for exports you still have to call reg.exe binaryzero 1 Share Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598897018 Share on other sites More sharing options...
jupe Posted April 23, 2024 Share Posted April 23, 2024 (edited) Instead of adding number -01 etc index numbers, you could just use the date, if you did that you could have just a 1 liner, something like this: reg export "HKEY_CURRENT_USER\Software\Mozilla" "X:\backupregistry\%DATE:/=-%.reg" /y Depending on your local date format you might need to change the format of the date variable to suit, or add the time variable too if you are doing multiple exports per day. Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598897110 Share on other sites More sharing options...
drugo Posted April 23, 2024 Author Share Posted April 23, 2024 On 22/04/2024 at 18:08, binaryzero said: Save ^ as "BackupRegistryKeys.ps1". Create a CSV file called "regkeys.csv", save it in X:\Backupregistry, copy and paste the below. RegistryKey, HKEY_CURRENT_USER\Software\Mozilla, HKEY_CURRENT_USER\Software\J. River, (or use Excel, save as .csv) Open PowerShell, run the script, .\BackupRegistryKeys.ps1. Tada When you want to add more registry keys, add them to the csv file. No need to hardcode paths in the script... hi first i want to thank you so much but i can't understand why under windows 11 pro 64bit , from the extension menu run with powershell it doesn't work it's just handy will the script save me many *.reg files , like backup.reg , backup1.reg , backup2.reg and so on appreciate it a lot Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598897206 Share on other sites More sharing options...
binaryzero Posted April 23, 2024 Share Posted April 23, 2024 (edited) # Import CSV file $csvData = Import-Csv -Path "X:\backupregistry\regkeys.csv" # Backup directory $backupDir = "X:\backupregistry" # Check the backup directory exists if (!(Test-Path -Path $backupDir)) { New-Item -ItemType Directory -Path $backupDir | Out-Null } # Loop through each registry key in the CSV file foreach ($row in $csvData) { $key = $row.RegistryKey # Get the current date and time $date = Get-Date -Format "yyyyMMdd_HHmmss" # Define the backup file path $backupFile = Join-Path -Path $backupDir -ChildPath ("$(($key -replace '\\', '_'))-$date.reg") # Export the registry key Invoke-Expression -Command "reg export `"$key`" `"$backupFile`"" # Check if the .reg file has been created if (Test-Path -Path $backupFile) { Write-Output "Backup for $key created successfully at $backupFile" } else { Write-Output "Failed to create backup for $key" } } Added a line to append the date and time to the end of the filename; you can change the format yourself, https://lazyadmin.nl/powershell/get-date/. You're going to need to run this in an elevated PowerShell (run as administrator) session if you're backing up HKLM keys. If you want to create a shortcut, create BackupRegistryKeys.cmd and put "start %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -Executionpolicy Bypass -Noninteractive -File "X:\backupregistry\BackupRegistryKeys.ps1". Right click, run as administrator. Edited April 23, 2024 by binaryzero drugo and Yonah 1 1 Share Link to comment https://www.neowin.net/forum/topic/1440602-is-there-a-way-to-export-registry-key-but-in-an-incremental-way-many-copies/#findComment-598897213 Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now