alexey_vf
22-12-2010, 14:34
Уважаемые коллеги просьба дать наводку или подсказать как решить задачу с помощью простого 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у файлов по одному, поскольку он стал ужасно глючным.
Заранее благодарен за любую подсказку.
Задача:
Есть две директории:
\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у файлов по одному, поскольку он стал ужасно глючным.
Заранее благодарен за любую подсказку.