CMD/BAT - CMD Перемещение каталогов с длинными именами.

Аватара пользователя
deluxe9999

CMD/BAT - CMD Перемещение каталогов с длинными именами.

Сообщение deluxe9999 »

Здравствуйте всем!



Помогите пожалуйста с созданием BAT-ника для автоматизации.



На работе один сервер каждый день генерирует папку с файлами (Info_User data_2018-1-9-8-2-17_ImmdTask12-Compressed) в 8:00 утра.

Пароль и логин сервера, простым юзерам небезопасно. Нужно чтобы один компьютер перемещал ежедневные генерированные папки с определенным именем с сервера на свою директорию.

Но так как данное имя папки ежедневно меняется структура * в move не работает. При копирование с XCOPY копируется все данные включая и старые папки сгенерированные в прошлые дни.

Хотелось бы чтобы перемещались папки а не копировались, как указал ниже?



Xcopy /E /S /I /Y \\10.1.0.1\d$\data\Info* D:\test\info_%date%

Xcopy /E /S /I /Y \\10.1.0.2\d$\data\Info* D:\test\info_%date%
Аватара пользователя
deluxe9999

Re: CMD/BAT - CMD Перемещение каталогов с длинными именами.

Сообщение deluxe9999 »

Цитата Elven:



Код:

robocopy /?
CMD/BAT - CMD Перемещение каталогов с длинными именами.




Если не будет вам сложно, можно чуток по подробнее для новичка по CMD так как у robocopy много функций, затеряться можно?
Аватара пользователя
deluxe9999

Re: CMD/BAT - CMD Перемещение каталогов с длинными именами.

Сообщение deluxe9999 »

,deluxe9999,
Цитата deluxe9999:



Нужно чтобы один компьютер перемещал ежедневные генерированные папки с определенным именем с сервера на свою директорию.
CMD/BAT - CMD Перемещение каталогов с длинными именами.




Зачем это нужно, для хранения или для текущей работы?
Цитата deluxe9999:



сервер каждый день генерирует папку с файлами (Info_User data_2018-1-9-8-2-17_ImmdTask12-Compressed)
CMD/BAT - CMD Перемещение каталогов с длинными именами.




Что обозначают цифры в имени папки?
Цитата deluxe9999:



перемещал ежедневные генерированные папки с определенным именем с сервера на свою директорию.
CMD/BAT - CMD Перемещение каталогов с длинными именами.




Что Вы имеете ввиду под определённым?

И, кстати,
Цитата deluxe9999:



При копирование с XCOPY копируется все данные включая и старые папки сгенерированные в прошлые дни.
CMD/BAT - CMD Перемещение каталогов с длинными именами.




У xcopy есть ключ /d, который позволяет пропустить копирование старых файлов, но при этом необходимо копировать файлы в одну и ту же папку, либо явно указывать дату
Цитата:



/D:m-d-y - Копирование файлов, измененных не ранее указанной даты. Если дата не указана, заменяются только конечные файлы, более старые, чем исходные.
Аватара пользователя
megaloman

Re: CMD/BAT - CMD Перемещение каталогов с длинными именами.

Сообщение megaloman »

Цитата megaloman:



Зачем это нужно, для хранения или для текущей работы?

Цитата deluxe9999:
CMD/BAT - CMD Перемещение каталогов с длинными именами.




Добрый день!

Нужны для хранения данных.



а) Цифры в папках это даты которое при ежедневном генерации данных сервер создает.

б) Под определённым имею ввиду то, что сервер создает папки с лишними информация ми, нужно после перемещения примерно называлась "papka_%data%"
Аватара пользователя
deluxe9999

Re: CMD/BAT - CMD Перемещение каталогов с длинными именами.

Сообщение deluxe9999 »

Цитата deluxe9999:



Нужны для хранения данных.
CMD/BAT - CMD Перемещение каталогов с длинными именами.




Почему бы не использовать архиватор? Существенная экономия места даже при низком уровне сжатия.
Цитата deluxe9999:



Цифры в папках это даты которое при ежедневном генерации данных сервер создает.
CMD/BAT - CMD Перемещение каталогов с длинными именами.




Сегодня 19.01.2018. Как называется папка которую надо архивировать?
Аватара пользователя
megaloman

Re: CMD/BAT - CMD Перемещение каталогов с длинными именами.

Сообщение megaloman »

Цитата megaloman:



Нужны для хранения данных. »

Почему бы не использовать архиватор? Существенная экономия места даже при низком уровне сжатия.
CMD/BAT - CMD Перемещение каталогов с длинными именами.




Было бы круто с архивированием папку под именем %VLR_дата%.
Аватара пользователя
deluxe9999

Re: CMD/BAT - CMD Перемещение каталогов с длинными именами.

Сообщение deluxe9999 »

deluxe9999


Архиватор RAR

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@Echo Off
cls
Set "BoxIn=Z:\Box_In\VLR"
Set "BoxArc=Z:\Box_Arc"
Set "ArcName=VLR_"
Set "Arc=%ProgramFiles%\WinRar\WinRar.exe"
FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "Tdate=%%d"
Set "Tdate=%Tdate:~0,8%"
"%Arc%" a -r -m1 -df -ta%Tdate%000000 -ag%Tdate% "%BoxArc%\%ArcName%" "%BoxIn%\*.*"

Вы не расшифровали имя папки
Цитата deluxe9999:



сервер каждый день генерирует папку с файлами (Info_User data_2018-1-9-8-2-17_ImmdTask12-Compressed)
CMD/BAT - CMD Перемещение каталогов с длинными именами.




На мои непристойные домогательства Вы ответили
Цитата deluxe9999:



папка под именем VLR
CMD/BAT - CMD Перемещение каталогов с длинными именами.




Вам бы
Цитата deluxe9999:



Хотелось бы чтобы перемещались папки а не копировались
CMD/BAT - CMD Перемещение каталогов с длинными именами.




В моём скрипте применяю архиватор Rar. За удаление архивированных файлов отвечает выделенный ключ -df, если этого не нужно, удалите этот ключ.

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

Скрипт архивирует в указанной папке все файлы за сегодня, заархивированные файлы удаляются (если Вы не передумаете).

Имя архива имеет вид VLR_ГГГГММДД






XCopy

[spoiler]Просто копирование за сегодня[/spoiler]

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@Echo Off
cls
Set "BoxIn=Z:\Box_In\VLR"
Set "BoxArc=Z:\Box_Arc"
Set "ArcName=VLR_"
FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "Tdate=%%d"
Set "Tdate=%Tdate:~0,8%"
Set "DXcopy=%TDate:~4,2%-%TDate:~6,2%-%TDate:~0,4%"
Pushd "%BoxIn%"
Xcopy /S /I /Y /F /D:%DXcopy% *.* "%BoxArc%\%ArcName%%TDate%"
Popd








Копирование за сегодня с удалением исходных файлов

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@Echo Off
cls
Set "BoxIn=Z:\Box_In\VLR"
Set "BoxArc=Z:\Box_Arc"
Set "ArcName=VLR_"
FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "Tdate=%%d"
Set "Tdate=%Tdate:~0,8%"
Set "DXcopy=%TDate:~4,2%-%TDate:~6,2%-%TDate:~0,4%"
Pushd "%BoxIn%"
FOR /F "usebackq tokens=1,2 delims=>" %%i In (`xcopy /S /I /Y /F /D:%DXcopy% *.* "%BoxArc%\%ArcName%%TDate%"`) DO Call :DelCopy "%%i" "%%j"
Popd 
GoTo :Eof
:DelCopy
	If "%~2"=="" GoTo :Eof
	Set "File1=%~1" 
	Set "File1=%File1:~0,-2%"
	Set "File2=%~2" 
	Set "File2=%File2:~1,9999%"
	If Exist "%File2%" Del "%File1%"
GoTo :Eof

Пустые папки не рискнул удалять, не зная задачи подробно
Аватара пользователя
deluxe9999

Re: CMD/BAT - CMD Перемещение каталогов с длинными именами.

Сообщение deluxe9999 »

Спасибо большое за Ваш отклик. Так как суббота и воскресенье не рабочий день. Попробую сегодня и дам Вам свой результат.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»