Fantastish
15-07-2016, 16:52
Доброго дня.
Прошу помощи в решении такой задачки:
Пишу скриптик для автоматизации рутийной работы по переносу профиля пользователя с диска С на D
проблема скрипта сейчас - это при копировании профиля, постоянно спрашивает каталог это или нет, а так же не может подкаталоги пересоздать
и после изменения путей реестра, использование новых путей
@ECHO off
cls
ECHO.
ECHO VIEW PROFILES USERS
rem просмотр текущей конфигурации профиля
cd c:\users
dir /b
set profiles=
rem обнуление переменной
set /p profiles=Enter name copy user:
rem ввод пользователем значения переменной choice
ECHO ______________________________________________________________________________________________
ECHO SHOW REGEDIT Profiles
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Desktop
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Favorites
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Music"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Pictures"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Video"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal
ECHO ______________________________________________________________________________________________
pause
:start
cls
ECHO.
ECHO 1 SHOW LINE REG
ECHO 2 xcopy profiles disk D:\
ECHO 3 UPDATE REGEDIT PROFILES
ECHO 4 DELETE OLD PROFILES
ECHO 0 Exit
rem вывод меню для пользователя
set choice=
rem обнуление переменной choice
set /p choice=Enter the number of your choice:
rem ввод пользователем значения переменной choice
if '%choice%'=='1' goto one
rem если значение choice равно единице, то перейти к метке one
if '%choice%'=='2' goto two
if '%choice%'=='3' goto three
if '%choice%'=='4' goto for
if '%choice%'=='0' goto end
if '%choice%'=='' goto start
ECHO "%choice%" is not valid. Please try again
ECHO.
goto start
rem если введенное пользователем значение не предусмотрено, то начать сначала
:one
rem просмотр реестра
ECHO ______________________________________________________________________________________________
ECHO SHOW REGEDIT Profiles
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Desktop
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Favorites
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Music"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Pictures"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Video"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal
ECHO ______________________________________________________________________________________________
pause
goto start
:two
d:
md %profiles%
cd d:\%profiles%
md Desktop
md Favorites
md Music
md Pictures
md Videos
md Personal
xcopy %userprofile%\Desktop\*.* d:\%profiles%\Desktop /E /C /H /R /Y
xcopy %userprofile%\Documents\*.* d:\%profiles%\Documents /E /C /H /R /Y
xcopy %userprofile%\Favorites\*.* d:\%profiles%\Favorites /E /C /H /R /Y
xcopy %userprofile%\Music\*.* d:\%profiles%\Music /E /C /H /R /Y
xcopy %userprofile%\Pictures\*.* d:\%profiles%\Pictures /E /C /H /R /Y
xcopy %userprofile%\Videos\*.* d:\%profiles%\Videos /E /C /H /R /Y
pause
goto start
:three
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Desktop /t REG_SZ /d D:\%profiles%\Desktop /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Favorites /t REG_SZ /d D:\%profiles%\Favorites /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Music" /t REG_SZ /d "D:\%profiles%\Music" /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Pictures" /t REG_SZ /d "D:\%profiles%\My Pictures" /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Music" /t REG_SZ /d "D:\%profiles%\Music" /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Video" /t REG_SZ /d "D:\%profiles%\My Video" /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal /t REG_SZ /d D:\%profiles%\Personal /f
pause
goto start
:for
pause
:end
рассмотрю варианты оптимизации
Прошу помощи в решении такой задачки:
Пишу скриптик для автоматизации рутийной работы по переносу профиля пользователя с диска С на D
проблема скрипта сейчас - это при копировании профиля, постоянно спрашивает каталог это или нет, а так же не может подкаталоги пересоздать
и после изменения путей реестра, использование новых путей
@ECHO off
cls
ECHO.
ECHO VIEW PROFILES USERS
rem просмотр текущей конфигурации профиля
cd c:\users
dir /b
set profiles=
rem обнуление переменной
set /p profiles=Enter name copy user:
rem ввод пользователем значения переменной choice
ECHO ______________________________________________________________________________________________
ECHO SHOW REGEDIT Profiles
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Desktop
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Favorites
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Music"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Pictures"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Video"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal
ECHO ______________________________________________________________________________________________
pause
:start
cls
ECHO.
ECHO 1 SHOW LINE REG
ECHO 2 xcopy profiles disk D:\
ECHO 3 UPDATE REGEDIT PROFILES
ECHO 4 DELETE OLD PROFILES
ECHO 0 Exit
rem вывод меню для пользователя
set choice=
rem обнуление переменной choice
set /p choice=Enter the number of your choice:
rem ввод пользователем значения переменной choice
if '%choice%'=='1' goto one
rem если значение choice равно единице, то перейти к метке one
if '%choice%'=='2' goto two
if '%choice%'=='3' goto three
if '%choice%'=='4' goto for
if '%choice%'=='0' goto end
if '%choice%'=='' goto start
ECHO "%choice%" is not valid. Please try again
ECHO.
goto start
rem если введенное пользователем значение не предусмотрено, то начать сначала
:one
rem просмотр реестра
ECHO ______________________________________________________________________________________________
ECHO SHOW REGEDIT Profiles
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Desktop
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Favorites
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Music"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Pictures"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Video"
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal
ECHO ______________________________________________________________________________________________
pause
goto start
:two
d:
md %profiles%
cd d:\%profiles%
md Desktop
md Favorites
md Music
md Pictures
md Videos
md Personal
xcopy %userprofile%\Desktop\*.* d:\%profiles%\Desktop /E /C /H /R /Y
xcopy %userprofile%\Documents\*.* d:\%profiles%\Documents /E /C /H /R /Y
xcopy %userprofile%\Favorites\*.* d:\%profiles%\Favorites /E /C /H /R /Y
xcopy %userprofile%\Music\*.* d:\%profiles%\Music /E /C /H /R /Y
xcopy %userprofile%\Pictures\*.* d:\%profiles%\Pictures /E /C /H /R /Y
xcopy %userprofile%\Videos\*.* d:\%profiles%\Videos /E /C /H /R /Y
pause
goto start
:three
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Desktop /t REG_SZ /d D:\%profiles%\Desktop /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Favorites /t REG_SZ /d D:\%profiles%\Favorites /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Music" /t REG_SZ /d "D:\%profiles%\Music" /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Pictures" /t REG_SZ /d "D:\%profiles%\My Pictures" /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Music" /t REG_SZ /d "D:\%profiles%\Music" /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "My Video" /t REG_SZ /d "D:\%profiles%\My Video" /f
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Personal /t REG_SZ /d D:\%profiles%\Personal /f
pause
goto start
:for
pause
:end
рассмотрю варианты оптимизации