 |
|
Цикл for, команда dir с двумя шаблонами файлов
Здравствуйте.
Командный файл разносит поступающие файлы в архив и для дальнейшей обработки:
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
rem Переменная для паузы в цикле копирования файлов, только после входа в
rem цикл - когда список файлов сформирован, для завершения формирования файлов.
Set flag=
for /f "delims=" %%a in ('dir c:\uta\in\*.* /b/o:ne/a-d 2^>nul') do (
If Not Defined flag (
rem пауза для завершения формирования файлов один раз, при входе в цикл.
echo передача файлов из УТА в КБР:>con
Set flag=1
c:\UTIL\sleep 5
time /t>con
)
rem копируем для архивирования
copy c:\uta\in\%%a C:\arh\KBR\UTA2KBR\%%a
rem переносим для обработки ПК АРМ КБР
move c:\uta\in\%%a c:\uarm2\exg\inc\%%a
)
Поступило изменение: надо учитывать в файлах "рабочий" день месяца. Для примера задал в переменной:
Код:
rem рабочий день:
set K_dd=27
Файлов два типа:
c:\uta\in\?????K_dd???.EDS
c:\uta\in\??????????K_dd???.ED
Как изменить цикл for для обработки файлов с такими условиями?
Так не работает:
Код:
for /f "delims=" %%a in ('dir c:\uta\in\?????%%K_dd???.EDS c:\uta\in\??????????%%K_dd???.ED /b/o:ne/a-d 2^>nul') do (
Спасибо!
|
ИМХО Вместо %%K_dd надо %K_dd%
Особенно в задачу не вчитывался, возможно, что-то еще не так, но это очевидно.
|
Спасибо!
Из справки (как-то без Вашей подсказки пропускал данный текст):
Цитата:
Использование нескольких имен_файлов
Допускается использование нескольких имен_файлов. Разделяйте имена файлов пробелом, запятой или точкой с запятой. Для вывода группы файлов допускается применение подстановочных знаков (? и *) в параметре имя_файла.
|
Сделал так:
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
rem Переменная для паузы в цикле копирования файлов, только после входа в
rem цикл - когда список файлов сформирован, для завершения формирования файлов.
Set flag=
c:
cd c:\uta\in\
for /f "delims=" %%a in ('dir ?????%K_dd%???.EDS ??????????%K_dd%???.ED /b/o:ne/a-d 2^>nul') do (
If Not Defined flag (
rem пауза для завершения формирования файлов один раз, при входе в цикл.
echo передача файлов из УТА в КБР:>con
Set flag=1
c:\UTIL\sleep 5
time /t>con
)
rem копируем для архивирования
copy c:\uta\in\%%a C:\arh\KBR\UTA2KBR\%%a
rem переносим для обработки ПК АРМ КБР
move c:\uta\in\%%a c:\uarm2\exg\inc\%%a
)
|
Вот еще решение, сразу поиском не нашел, через Findstr
|
Время: 07:58.
© OSzone.net 2001-