Имя пользователя:
Пароль:
 

Показать сообщение отдельно

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


Сообщения: 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