Войти

Показать полную графическую версию : [решено] Выбор диска, самостоятельно, либо с предложение, для сохранения файлов


O L E G
25-11-2018, 21:48
Доброго времени суток.
Запилял для себя софтинку, для теневого\резервного копирования данных. Таких как system32\config sam system software и тд.
Не которым людям она понравилась и они по просили сделать, так что бы можно было при запуске программы, указать куда будут резервироваться данные.
Вот решил спросить у вас)


@echo off
title a1_Backup

:: Пауза 1 секунд
regedit /s vss.reg
TIMEOUT 3

:: Запуск Службы Теневого Копирования
net start VSS
TIMEOUT 3

copy /y bcdedit.exe %windir%\system32\
copy /y HoboCopy.exe %windir%\system32\

mkdir %systemdrive%\a1_Backup\BCD\_%date%\
mkdir %systemdrive%\a1_Backup\CONFIG\_%date%\
mkdir %systemdrive%\a1_Backup\NTUSER\_%date%\

:: сохраняем параметры загрузки (ms - dos \ кириллица dos)
bcdedit.exe /v > %systemdrive%\a1_Backup\BCD\_%date%\bootconf.rtf > %systemdrive%\a1_Backup\BCD\BCD_%date%.cfg

:: резервная копия загрузчика
bcdedit.exe /export %systemdrive%\a1_Backup\BCD\_%date%\BCDfile

:: - Резерв ПрЫгодится !!!
:: hobocopy /recursive /full /y %windir%\system32\config\ %systemdrive%\Backup\%date%\CONFIG\

hobocopy /y %systemdrive%\ %systemdrive%\a1_Backup\BCD\_%date%\ bootmgr > %systemdrive%\a1_Backup\BCD\_%date%\bootmgr.log
echo %systemdrive%\bootmgr >> %systemdrive%\a1_Backup\BCD\_%date%\bootmgr.log

hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ SAM > %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ DEFAULT >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ SECURITY >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ software >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ system >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ COMPONENTS >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ netlogon.ftl >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %userprofile%\ %systemdrive%\a1_Backup\NTUSER\_%date%\ NTUSER.DAT > %systemdrive%\a1_Backup\NTUSER\_%date%\ntuser.log


msg * Completed!!!

O L E G
25-11-2018, 22:18
как вариант, опробую, нашел)

@echo off
setlocal

for /f "tokens=2 delims=:" %%i in ('chcp') do (
set sPrevCP=%%i
chcp 1251 >nul
)

for /f "usebackq delims=" %%i in (
`@"%systemroot%\system32\mshta.exe" "javascript:var objShellApp = new ActiveXObject('Shell.Application');var Folder = objShellApp.BrowseForFolder(0, 'SELECT FOLDER',1, '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}');try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder.Self.Path)};catch (e){};close();" ^
1^|more`
) do set sFolderName=%%i

chcp %sPrevCP% >nul

if defined sFolderName (
echo Выбрана папка: %sFolderName%
) else (
echo Папка не была выбрана.
)
pause

Iska
25-11-2018, 22:29
copy /y bcdedit.exe %windir%\system32\ »
Зачем в процессе backup копировать bcdedit.exe в системный каталог, где уже есть оригинальный bcdedit.exe?

copy /y HoboCopy.exe %windir%\system32\ »
Для чего копировать туда же нечто стороннее?

hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ SAM > %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ DEFAULT >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ SECURITY >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ software >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ system >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ COMPONENTS >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
hobocopy /y %windir%\system32\config\ %systemdrive%\a1_Backup\CONFIG\_%date%\ netlogon.ftl >> %systemdrive%\a1_Backup\CONFIG\_%date%\config.log
»
>"%systemdrive%\a1_Backup\CONFIG\_%date%\config.log" (
for %%i in (SAM DEFAULT SECURITY software system COMPONENTS netlogon.ftl) do hobocopy.exe /y "%SystemRoot%\system32\config\" "%systemdrive%\a1_Backup\CONFIG\_%date%\" "%%~i"
)

O L E G
26-11-2018, 09:30
Зачем в процессе backup копировать bcdedit.exe в системный каталог, где уже есть оригинальный bcdedit.exe? »
да уже изменил, просто бывает файл на системе поврежден, думал как резервный. Убрал
Для чего копировать туда же нечто стороннее? »
Такая же ситуация. Оставил модуль hobocopy в контейнере с приложением.
"%systemdrive%\a1_Backup\CONFIG\_%date%\config.log" (
for %%i in (SAM DEFAULT SECURITY software system COMPONENTS netlogon.ftl) do hobocopy.exe /y "%SystemRoot%\system32\config\" "%systemdrive%\a1_Backup\CONFIG\_%date%\" "%%~i"
) »
За это спасибо

O L E G
26-11-2018, 11:13
Iska,
Уважаемый Iska, подредактируйте код, если При выборе отмена или нажатии на закрытие окна, скрипт не продолжал работать.
а то получается, выбор выскакиевает, диска, но если нажать отмену, он срабатывает дальше.
СПАСИБО!

@echo off
setlocal

for /f "tokens=2 delims=:" %%i in ('chcp') do (
set sPrevCP=%%i
chcp 1251 >nul
)

for /f "usebackq delims=" %%i in (
`@"%systemroot%\system32\mshta.exe" "javascript:var objShellApp = new ActiveXObject('Shell.Application');var Folder = objShellApp.BrowseForFolder(0, 'SELECT FOLDER',1, '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}');try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder.Self.Path)};catch (e){};close();" ^
1^|more`
) do set sFolderName=%%i

chcp %sPrevCP% >nul

if defined sFolderName (
echo Выбрана папка: %sFolderName%
) else (
echo Папка не была выбрана.
)
pause

Iska
26-11-2018, 18:13
O L E G, там нечего редактировать. Покажите Ваш код.

O L E G
26-11-2018, 18:38
Iska,

@echo off
setlocal

for /f "tokens=2 delims=:" %%i in ('chcp') do (
set sPrevCP=%%i
chcp 1251 >nul
)

for /f "usebackq delims=" %%i in (
`@"%systemroot%\system32\mshta.exe" "javascript:var objShellApp = new ActiveXObject('Shell.Application');var Folder = objShellApp.BrowseForFolder(0, 'SELECT FOLDER',1, '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}');try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder.Self.Path)};catch (e){};close();" ^
1^|more`
) do set sFolderName=%%i

chcp %sPrevCP% >nul

if defined sFolderName (
echo Выбрана папка: %sFolderName%
) else (
echo Папка не была выбрана.
)

mkdir %sFolderName%\a1_Backup\BCD\%date%\
mkdir %sFolderName%\a1_Backup\CONFIG\%date%\
mkdir %sFolderName%\a1_Backup\NTUSER\%date%\

hobocopy /y %systemdrive%\ %sFolderName%\a1_Backup\BCD\%date%\ bootmgr >> %sFolderName%\a1_Backup\BCD\%date%\bootmgr.log

hobocopy /y %windir%\system32\config\ %sFolderName%\a1_Backup\CONFIG\%date%\ SAM >> %sFolderName%\a1_Backup\CONFIG\%date%\config.log




То есть, если я к примеру закрываю Окно выбора диска, код работает дальше

Iska
26-11-2018, 19:19

if defined sFolderName (
echo Выбрана папка: %sFolderName%

mkdir %sFolderName%\a1_Backup\BCD\%date%\
mkdir %sFolderName%\a1_Backup\CONFIG\%date%\
mkdir %sFolderName%\a1_Backup\NTUSER\%date%\

hobocopy /y %systemdrive%\ %sFolderName%\a1_Backup\BCD\%date%\ bootmgr >> %sFolderName%\a1_Backup\BCD\%date%\bootmgr.log
hobocopy /y %windir%\system32\config\ %sFolderName%\a1_Backup\CONFIG\%date%\ SAM >> %sFolderName%\a1_Backup\CONFIG\%date%\config.log
) else (
echo Папка не была выбрана.
)

O L E G
26-11-2018, 20:08
Iska,
Еще раз спасибо!
Н - невнимательность, надо было просто код поставить куда надо




© OSzone.net 2001-2012