ежедневное перемещение файлов
на одном ресурсе есть два каталога - "new" и "del"
нужен скрипт, который бы ЕЖЕДНЕВНО В 23-00 перемещал все абсолютно файлы из "new" в "del", с созданием подкаталогов в папке "del". Имена подкаталогов должны быть в формате - dd-mm-gg.
например, сегодня данный бы скрипт в 23-00 перенес бы файлы
из \\srv\new в \\srv\del\14-04-08
завтра бы из \\srv\new в \\srv\del\15-04-08
и т.д
проверка на то - пуст или нет каталог "new" не обязательна, но в целом интересна.
кто готов помочь?
спасибо
Все ответы
- Имхо можно обойтись без скриптов,воспользовавшись например winrar-ом (все перечисленные действия он умеет делать)
а запуск в опред. время через планировщик что ли?
- именно
- Code Snippet
xcopy /e \\srv\new \\srv\del\%date:.=-%\
И в шедулер на 23:00 на каждый день.
И с проверкой
Code Snippet@echo off
for /f %%i in ('dir /b \\srv\new') do set test=%%i
if not defined test (goto:eof) else (xcopy /e \\srv\new \\srv\del\%date:.=-%\)
xcopy /? если нужны дополнительные параметры 01MDM, а как сделать так, чтобы файлы не копировались, а перемещались!?
или после копирования из NEW удалялись бы! (без удаления каталога NEW)?
Удаляет каталог с подкаталогами и заново создает с тем же именем
Code Snippetrd /s /q \\srv\new && md \\srv\new
как вариант принимается, только у варианта один минус
все NTFS права данным методом уничтожаются.
- > все NTFS права данным методом уничтожаются
Это про удаление папки?
Если не нравится с удалением самой \\srv\new, то
Code Snippetpushd \\srv\new
rd /s /q .\ 2>nul
popd
Если про копирование с правами, то у xcopy есть соответствующие опции PowerShell
Code Snippet$path
= "\\zorion\c$\system32\"$destination
= "\\zorion\c$\temp\{0:yyyy-M-dd}\" -f (get-date)new-item
-ItemType directory -Path $destination -ForceGet-ChildItem -Path $path -Recurse | move-item -Destination $destination -force
Ребят, а вы специально команду move обходите, что-бы с xcopy поизгаляться?
Т.е. вот такой вариант :
вас принципиально не прикалывает?
- Да специально. Я попробовал, но move не может переместить папку на другой физический, а может и локальный диск.
move C:\test D:\%date%
Пишет:
Отказано в доступе.Поэтому на всякий случай выбрал xcopy. В общем случае он будет универсальней.
Перемещено файлов: 0.
Это естестественно. Мove перемещает в пределах одной файловой системы. Но моё решение работает ( в данном, конкретном, случае ) на порядки быстрее. Можете совместить 2 решения :-) Если move вернул ошибку - копировать.

