Быстрое копирование через CMD, туда-обратно, возможно ли?
Появилась недавно идея копирование файлов через bat файлы. Так как на работе перед установкой виндовс, мы обычно копируем целиком папку User ( сильно не заморачиваясь ), я написал простейший скрипт, что бы облегчить себе жизнь.
XCOPY %HOMEDRIVE%\Users \\DC\Share\Backup\%COMPUTERNAME% /s /c /y /I
echo - Все успешно скопировано в папку %COMPUTERNAME%
Суть его банальна, запускаем, начинается копирование на некий компьютер (DC) в сети в папку бэкап, в ней создается автоматически папка с именем компьютера, и туда сливаются все каталоги и файлы, кроме системных и скрытых.
Так как только вчера утром начал разбираться с CMD появились следующие вопросы, а как же облегчить жизнь еще)
По этому было решено дописать батник с меню для восстановления файлов, обратно на рабочий стол пользователя, когда будет чистый виндовс для пользователя со всеми программами. Но встал вопрос, как сделать так, что бы батник понимал что копировать обратно ( то есть какую папку, от какого компа), и появилась мысль, что бы выскакивало меню в батники, с папками от компов из папки Backup, а по нажатию номера (желательно) или ввода определенной папки, батник его подхватывал и уже копировал). Надеюсь вы меня поняли) Буду благодарен, если намекнете как это сделать)
@ECHO off
@CHOICE /C:123
IF ERRORLEVEL 3 GOTO three
IF ERRORLEVEL 2 GOTO two
IF ERRORLEVEL 1 GOTO one
GOTO end
:one
ECHO You have pressed "1"!
GOTO end
:two
ECHO You have pressed "2"!
GOTO end
:three
ECHO You have pressed "3"!
:end
@PAUSE
386DX: Суть меню меня не сильно волнует, это я понял, как сделать так, что бы он заходил в ту папку бэкап на сервере, и те папки которые остались под именами компьютера с которых он их копировал, можно было выбрать допустим цифрой. То есть мы делаем бэкам с 2 компьютеров ( 1pc и 2pc ). Мы запускаем батник на восстановления тех папок, батник заходит на папку backup на серваке, видит там две папки от двух пк, то есть 1pc и 2 pc. И как сделать, что бы на этом моменте я выбрал ту папку которая мне нужна. То есть имя бы ее вбил в консоле или лучше выбрал просто цифрой.
монтируете сетевую папку, смотрите содержимое, увидите список папок 1pc и 2pc
Дальше ручками пишите команду что-то вроде "xcopy x:\2pc %HOMEDRIVE%\Users /s /c /y /I"
ЗЫ - у вас пять вопросов в одном - как использовать сетевые папки в cmd, как делать выборное меню в bat, как прочитать содержимое папки и т.д. разделите вопрос на части и ищите - спрашивайте ответ на каждый.
подключаете шару, делайте листинг, дальше выборное меню по нажатию 1-2-3 копируются соответственно папки 1pc 2pc 3pc. Сделать так чтобы копировались папки, имена которых вы заранее не знаете сложно (для меня по крайней мере) нужно использовать циклы for %%
Я бы просто тупо в каждую папку 1pc 2pc 3pc положил файл vozvrat.bat копирующий ее содержимое куда надо и из меню CHOICE его бы запускал, не заморачиваясь циклами, листингами папок и проч
У вас за одним компьютером работает не один пользователь?
Зачем вам копировать вообще всё из users если вам нужны только файлы определенного пользователя
Пользуйтесь в командной строке подстановкой %username% (%%username%% в скриптах) и заливайте\забирайте в backup шару по имени пользователя.
Как это было сделано (без использования easy transfer или migration wizard) на одном из моих мест :
на сервере server создан общий ресурс share со следующими правами :
доступ из сети : everyone - full
права NTFS : Everyone - создание папок, запись данных только для этой папки.
права NTFS: Domain Admins - full на папку, подпапки и файлы
права NTFS: Creator-Owner - full на подпапки и файлы.
Скрипт запускался из-под пользователя, забирал содержимое папок c:\users\%username% с фильтром "*,doc","*.docx","*.xls","*.xslx" и так далее, как вздумается.
Создавалась папка \\server\share\%username% - пользователь имеет права на создание папок, благодаря everyone, затем созданная папка благодаря creator-owner доступна только ему и администраторам домена.
При восстановлении опять же использовался тот же стандартный путь \\server\share\%username% - каждый пользователь мог забрать файлы только из своей папки.
Соответственно использовался один и тот же скрипт для миграции любого пользователя, без вариантов, лишних файлов и прочей чепухи.