Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скрипт для копирования папки с файлами (http://forum.oszone.net/showthread.php?t=341628)

neviDimka91 31-07-2019 13:42 2882117

Скрипт для копирования папки с файлами
 
Доброго времени суток. Прошу помочь написать, на мой взгляд, сложный скрипт. Суть такая. Есть группа пользователей, они находятся в домене. У каждого из них, на компьютере, есть папка с файлами...если точно, то C:\WindowsSE и в ней пару документов, которые записываются туда каждый день. Скрипт должен делать следующее, когда пользователь выключает компьютер или скажем за 30 минут до конца рабочего дня, брал содержимое папки WindowsSE или саму папку и копировал все на сервер, но так как пользователей много, а значит на сервер будет копироваться много папок WindowsSE, что в итоге создаст одну папку и все файлы будут в перемешку, а надо что бы от каждого пользователя (желательно с его именем и фамилией или именем компьютера) создавалась папка и уже туда помещалась та самая папка WindowsSE с его данными, не "затираясь" или "заменяясь" такими же от других пользователей!, такое вообще возможно сделать?)))

Ageron 31-07-2019 14:53 2882125

Цитата:

Цитата neviDimka91
когда пользователь выключает компьютер »

поместить в logoff батник
с содержимым

Код:

set old_dir="D:\очень важная папка"
set new_dir="\\server\важные папки\%username%"
xcopy %old_dir% %new_dir% /s /e /h /y


neviDimka91 31-07-2019 15:12 2882127

Цитата:

Цитата megaloman
Где расположен скрипт: на сервере или у клиента? »

Если вы про скрипт, который хотелось бы написать, то я думаю он будет располагаться как написали вышел в LOGOFF.

Цитата:

Цитата Ageron
set old_dir="D:\очень важная папка"
set new_dir="\\server\важные папки\%username%"
xcopy %old_dir% %new_dir% /s /e /h /y »

я попробую - позже отпишусь

UPD: попробовал скрипт. При выходе пользователя компьютер завис))))

Charg 31-07-2019 19:04 2882154

Цитата:

Цитата neviDimka91
При выходе пользователя компьютер завис)))) »

Не завис а начал копирование. Либо у пользователя нет прав на запись в папку %new_dir%

DJ Mogarych 31-07-2019 22:02 2882177

neviDimka91, для этого 100 лет как придумали домашние папки:
https://support.microsoft.com/ru-ru/...lder-to-a-user
Пользователи просто будут работать уже на сервере в своей папке.

И никаких скриптовых костылей. У вас же домен есть, это очень мощная штука.

neviDimka91 01-08-2019 08:06 2882203

Цитата:

Цитата Charg
Не завис а начал копирование. Либо у пользователя нет прав на запись в папку %new_dir% »

в папочке было 3 файла (картина, документ ворд и эксель), доступ в папку есть (фул права). Пока не разобрался в чем дело, мб путь указан не верно, хотя перепроверил все 100 раз.

Цитата:

Цитата DJ Mogarych
Пользователи просто будут работать уже на сервере в своей папке. »

Скажем так, этот вариант нам не подходит, данный скрипт и копирование файлов происходит в неведении пользователя. Все в целях информационной безопасности.

neviDimka91 01-08-2019 08:54 2882209

Цитата:

Цитата neviDimka91
set old_dir="D:\очень важная папка"
set new_dir="\\server\важные папки\%username%"
xcopy %old_dir% %new_dir% /s /e /h /y »

Кажется разобрался в чем дело. Дописал в конце кода pause и увидел как во время выполнения он спрашивает это каталог или файл. Поставил ключ /i и все заработало.

Ageron, вам огромное спасибо за помощь. Для меня даже такой код сложный, а для вас как я вижу проще простого)

megaloman 01-08-2019 14:55 2882269

neviDimka91,
Цитата:

Цитата neviDimka91
Поставил ключ /i и все заработало. »

Можно и без этого ключа, если пути указывать с "\"
Я бы еще предложил /D, чтобы не перезаписывать файлы, если они не изменялись, и неплохо бы иметь лог-файл, чтобы можно было контролировать исполнение этого процесса
Код:

@Echo Off
        Set "old_dir=Z:\очень важная папка"
        Set "new_dir=\\Server\Test1\%username%"
       
        2>nul Md "%new_dir%"
        >>"%new_dir%\~%~nx0.log" (Echo. &Echo === %Date%  %Time%)
        >>"%new_dir%\~%~nx0.log" 2>>&1 Xcopy "%old_dir%\*.*" "%new_dir%\" /D /F /s /e /h /y


neviDimka91 01-08-2019 15:06 2882273

Цитата:

Цитата megaloman
Set "old_dir=Z:\очень важная папка"
Set "new_dir=\\Server\Test1\%username% »

хмм, а первые кавычки разве открывать нужно перед old а не когда путь указывается?
Set old_dir="Z:\очень важная папка"
Set new_dir="\\Server\Test1\%username%"

данный код попробую потестировать, но не сегодня

megaloman 01-08-2019 15:11 2882277

neviDimka91, Все кавычки у меня расставлены правильно.
Можно, конечно, сделать и так, но мне это не нравится
Код:

@Echo Off
        Set old_dir="Z:\очень важная папка\*.*"
        Set new_dir="\\Server\Test1\%username%\"
       
        2>nul Md "%new_dir%"
        >>"%new_dir%\~%~nx0.log" (Echo. &Echo === %Date%  %Time%)
        >>"%new_dir%\~%~nx0.log" 2>>&1 Xcopy %old_dir% %new_dir% /D /F /s /e /h /y


Iska 01-08-2019 15:17 2882278

Цитата:

Цитата neviDimka91
хмм, а первые кавычки разве открывать нужно перед old а не когда путь указывается? »

neviDimka91, эти кавычки не в пути. Они для команды set.

P.S. Кавычки для пути и не должны указываться в set. Указывайте их непосредственно в коде, везде, где будут использоваться переменные окружения old_dir и new_dir (как это сделано в коде коллеги megaloman выше).

neviDimka91 29-08-2019 13:12 2885860

Прошу прощения, за столь большой перерыв. Проверил код, как и обещал выше. Работает, только вот проблема, отображение русских букв в логах происходят в иероглифах.

Цитата:

=== 29.08.2019 13:08:29,01
C:\WindowsSE\Ќ®ў*п б¦*в*п ZIP-Ї*ЇЄ*.zip -> \WindowsSE\d.dima\Ќ®ў*п б¦*в*п ZIP-Ї*ЇЄ*.zip
C:\WindowsSE\Ќ®ўл© ⥪бв®ўл© ¤®Єг¬Ґ*в.txt -> \WindowsSE\d.dima\Ќ®ўл© ⥪бв®ўл© ¤®Єг¬Ґ*в.txt

Iska 29-08-2019 13:51 2885869

neviDimka91, так и должно быть. Это не иероглифы, это обычная кодировка OEM/866, обычный Блокнот её не умеет. Используйте другое приложение, которое умеет в OEM/866.

neviDimka91 29-08-2019 14:21 2885875

Цитата:

Цитата Iska
так и должно быть. Это не иероглифы, это обычная кодировка OEM/866 »

жестко туплю после отпуска)) Да, notepad++ читает спокойно. Еще раз всем спасибо


Время: 23:23.

Время: 23:23.
© OSzone.net 2001-