%username% part two
HejJeg har fået lavet et script her på eksperten.dk, som kopiere brugerdata fra en eller flere brugere.
Det tidligere spørgsmål:
http://www.eksperten.dk/spm/329347
Jeg har brugt scriptet en del, men jeg synes, at der mangler noget.
Jeg kunne godt tænke mig, at man får lov til at vælge et backup/restore drev og kunne peje, hvor "Documents and Settings" biblioteket ligger (jeg har flyttet "Documents and Settings" til mit d: drev).
*****************************************************
@echo off
set PassOver=All Users Default User
:MainMenu
cls
set ValidChoice=SBR
set Choice=
echo.
echo - Hoved menu -
echo.
echo S = Slut
echo B = Backup
echo R = Restore
echo.
set /p Choice=Indtast dit Valg:
if {%Choice%}=={} goto MainMenu
call set Test=%%ValidChoice:%Choice:~0,1%=%%
if "%Test%" EQU "%ValidChoice%" goto MainMenu
goto MainChoice-%Choice:~0,1%
:MainChoice-S
goto :EOF
:MainChoice-B
call :UniversalDate
set Task=Backup
set FromDrive=C:\
set ToDrive=H:\
set LogTxt=%Task% log: %dd%-%mm%-%yy% %time%
set logFile=%ToDrive%%Task%.txt
goto :SubMenu
:MainChoice-R
call :UniversalDate
set Task=Restore
set FromDrive=H:\
set ToDrive=C:\
set LogTxt=%Task% log: %dd%-%mm%-%yy% %time%
set logFile=%ToDrive%%Task%.txt
goto :SubMenu
:SubMenu
cls
set ValidChoice=SHA
set Choice=
set /a Counter=0
echo.
echo - %Task% menu -
echo.
echo S = Slut
echo H = Hoved menu
echo A = Alle brugere
for /f "delims=" %%a in ('dir /A:D/B "%FromDrive%Documents and Settings/"') do (
echo %PassOver% | find "%%a" >nul
if errorlevel 1 call :WriteSubMenu "%%a"
)
echo.
set /p Choice=Indtast dit Valg:
if {%Choice%}=={} goto SubMenu
call set Test=%%ValidChoice:%Choice%=%%
if "%Test%" EQU "%ValidChoice%" goto SubMenu
if "%Choice:~0,1%" GTR "9" goto SubChoice-%Choice:~0,1%
call :FindUser %Choice%
goto SubMenu
:SubChoice-H
goto :MainMenu
:SubChoice-S
goto :EOF
:SubChoice-A
call :CopyAllUsers
goto :SubMenu
:WriteSubMenu
set /a Counter+=1
set Name=%1
echo %Counter% = %Name:"=%
set ValidChoice=%ValidChoice%%Counter%
goto :EOF
:FindUser
set /a Counter=0
for /f "delims=" %%a in ('dir /A:D/B "%FromDrive%Documents and Settings/"') do (
echo %PassOver% | find "%%a" >nul
if errorlevel 1 call :CopyUser %1 "%%a"
)
goto :EOF
:CopyUser
set User=%2
set User=%User:"=%
set /a Counter+=1
if %Counter% EQU %1 (
cls
echo.
echo Starter %Task% af "%User%".
echo.
echo Tast Ctrl+c for at afbryde.
echo %LogTxt% > %logFile%
echo. >>%logFile%
echo Kopierer filer fra %FromDrive% til %ToDrive% for %User% >>%logFile%
echo. >>%logFile%
xcopy "%FromDrive%Documents and Settings\%User%\Lokale indstillinger\Application Data\Microsoft\Outlook" "%ToDrive%Documents and Settings\%User%\Lokale indstillinger\Application Data\Microsoft\Outlook" /s/e/h/k/y/i/f/r/o/c >>%logFile% 2>&1
xcopy "%FromDrive%Documents and Settings\%User%\Foretrukne" "%ToDrive%Documents and Settings\%User%\Foretrukne" /s/e /h/k/y/i/f/r/o/c >>%logFile% 2>&1
xcopy "%FromDrive%Documents and Settings\%User%\Dokumenter" "%ToDrive%Documents and Settings\%User%\Dokumenter" /s/e/h/k/y/i/f/r/o/c >>%logFile% 2>&1
xcopy "%FromDrive%Documents and Settings\%User%\Application Data\Microsoft\Address Book" "%ToDrive%Documents and Settings\%User%\Application Data\Microsoft\Address Book" /s/e/h/k/y/i/f/r/o/c >>%logFile% 2>&1
echo. >>%logFile%
cls
echo.
echo Færdig, tryk på en tast!
pause >nul
start Notepad %logFile%
)
goto :EOF
:CopyAllUsers
cls
echo.
echo Starter %Task% af "Alle brugere".
echo.
echo Tast Ctrl+c for at afbryde.
echo %LogTxt% > %logFile%
echo. >>%logFile%
for /f "delims=" %%a in ('dir /A:D/B "%FromDrive%Documents and Settings/"') do (
echo %PassOver% | find "%%a" >nul
if errorlevel 1 (
echo Kopierer filer fra %FromDrive% til %ToDrive% for %%a >>%logFile%
echo. >>%logFile%
xcopy "%FromDrive%Documents and Settings\%%a\Lokale indstillinger\Application Data\Microsoft\Outlook" "%ToDrive%Documents and Settings\%%a\Lokale indstillinger\Application Data\Microsoft\Outlook" /s/e/h/k/y/i/f/r/o/c >>%logFile% 2>&1
xcopy "%FromDrive%Documents and Settings\%%a\Foretrukne" "%ToDrive%Documents and Settings\%%a\Foretrukne" /s/e /h/k/y/i/f/r/o/c >>%logFile% 2>&1
xcopy "%FromDrive%Documents and Settings\%%a\Dokumenter" "%ToDrive%Documents and Settings\%%a\Dokumenter" /s/e/h/k/y/i/f/r/o/c >>%logFile% 2>&1
xcopy "%FromDrive%Documents and Settings\%%a\Application Data\Microsoft\Address Book" "%ToDrive%Documents and Settings\%%a\Application Data\Microsoft\Address Book" /s/e/h/k/y/i/f/r/o/c >>%logFile% 2>&1
echo. >>%logFile%
)
)
cls
echo.
echo Færdig, tryk på en tast!
pause >nul
start Notepad %logFile%
goto :EOF
:UniversalDate
set $tok=1-3
for /f "tokens=1 delims=.:/-, " %%u in ('date /t') do set $d1=%%u
if "%$d1:~0,1%" GTR "9" set $tok=2-4
for /f "tokens=%$tok% delims=.:/-, " %%u in ('date /t') do (
for /f "skip=1 tokens=2-4 delims=/-,()." %%x in ('echo.^|date') do (
set %%x=%%u
set %%y=%%v
set %%z=%%w
set $d1=
set $tok=
)
)
goto :EOF
