Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Автоматизация (поэтапное перемещения файлов) между двумя директориями

Ответить
Настройки темы
CMD/BAT - Автоматизация (поэтапное перемещения файлов) между двумя директориями

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Уважаемые коллеги просьба дать наводку или подсказать как решить задачу с помощью простого bat-файла. Потратил кучу времени за книгами и в поисковиках но безрезультатно.
Задача:
Есть две директории:
\Input
\Out


В директории Input много подкаталогов и очень много файлов (книг).

Требуется: с сохранением структуры директорий и имен файлов переместить один файл, лучше первый найденный, из директории \Input в директорию \Out.

читать дальше »
Использовать Xcopy, ForFiles, RoboCopy у меня за 2 дня не получилось, поскольку для них нужно задать либо всю директорию, либо имена файлов (список).
Т.е. Использовать можно, как я понял For /, Copy, Move.
Простейшее рабочее решение что я сделал: для For / с выходом из цикла после обработки первого файла... но оно сделано только для одной директории (пример):
Код: Выделить весь код
@echo off
rem Переменные From To
@set FromDir="D:\geolib\ig_and_hg\tiff_not_processed\"
@set ToDir="D:\geolib\ig_and_hg\realtime_processing\"

rem Если файл хоть один есть в директории выходим из программы 
if exist %ToDir%*.tif goto :ending

:moving
rem Ищем все tif-ы перемещаем первый, а затем выходим.
FOR %%x in (%FromDir%*.tif) do ( 
move /Y "%%x" %ToDir%
echo File %%x moved is OK.
exit
)
:ending



P.S. Такая дурацкая задача нужна для подсовывания последнему FineReaderу файлов по одному, поскольку он стал ужасно глючным.


Заранее благодарен за любую подсказку.

Отправлено: 14:34, 22-12-2010

 

Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


Попробуй
Код: Выделить весь код
for /f "delims=" %%x in ('dir /a-d/b/s "%FromDir%*.tif"') do (
*не проверял

Отправлено: 19:09, 22-12-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
for /f "delims=" %%x in ('dir /a-d/b/s "%FromDir%*.tif"') do (
Это скорее для пакетной обработки файлов, а как тогда выйти из операции после обработки первого файла из из всех найденных?

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

Код: Выделить весь код
rem echo off
rem Директория для перемещения
set movfld="c:\temp\processed"
rem Общий путь к корню директории
set root="c:\temp"
rem Источник файлов (отсюда файлы копируются и удаляются сразу по одному)
set FromDir="\test1\"
rem Получатель файлов
set ToDir="\test2\"

rem проверка на наличие хоть одного файла в директории получателя
for /r %movfld%\ %%A in (*.tif *.djv *.pdf) do (IF exist %%A goto :ending)

:moving
Удаление списка файлов
del /q /f dirlistfiles.txt

rem Обход по каталогам и файлам для выбора копируемых файлов
for /d %%D in (%root%%FromDir% %root%%FromDir%*) do (
@for %%x in ("%%D\*.tif" "%%D\*.djv" "%%D\*.pdf") do (
rem копирования файла с воссозданием исходной структуры путей
xcopy %%x %movfld%%%~px /E /F /H /R /K /Y
rem При успешном копировании удалить файл из источника
if errorlevel 0 if not errorlevel 1 (del %%x /q /f)
exit
)
:ending
echo Ending program. Files is present in processing folder.

Отправлено: 20:21, 22-12-2010 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Автоматизация (поэтапное перемещения файлов) между двумя директориями

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Программа для мониторинга копирования(перемещения) файлов. Ultrix Хочу все знать 1 09-02-2010 08:19
[решено] Отображение процесса перемещения файлов cra5h_ AutoIt 18 02-02-2010 19:05
Запрет выполнения файлов, но не перемещения, удаления, создания... ZORBI Microsoft Windows NT/2000/2003 9 25-04-2009 20:45
Мониторинг копирования (перемещения) файлов по сети glazemir Microsoft Windows NT/2000/2003 8 15-05-2008 09:07
Программы по созданию/ перемещения/ замены ассоциаций файлов wadimus Автоматическая установка Windows 2000/XP/2003 0 09-03-2007 09:51




 
Переход