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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Цикл for, команда dir с двумя шаблонами файлов

Ответить
Настройки темы
CMD/BAT - Цикл for, команда dir с двумя шаблонами файлов

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


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

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


Здравствуйте.
Командный файл разносит поступающие файлы в архив и для дальнейшей обработки:
Код: Выделить весь код
@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 (
Спасибо!

Отправлено: 10:14, 27-03-2014

 

Ветеран


Contributor


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

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


ИМХО Вместо %%K_dd надо %K_dd%
Особенно в задачу не вчитывался, возможно, что-то еще не так, но это очевидно.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:30, 27-03-2014 | #2



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

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


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


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

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


Спасибо!
Из справки (как-то без Вашей подсказки пропускал данный текст):
Цитата:
Использование нескольких имен_файлов
Допускается использование нескольких имен_файлов. Разделяйте имена файлов пробелом, запятой или точкой с запятой. Для вывода группы файлов допускается применение подстановочных знаков (? и *) в параметре имя_файла.
Сделал так:
Код: Выделить весь код
@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
)

Отправлено: 16:14, 27-03-2014 | #3


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


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

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


Вот еще решение, сразу поиском не нашел, через Findstr

Отправлено: 11:40, 28-03-2014 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Цикл for, команда dir с двумя шаблонами файлов

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Wireless - wi-fi соединение между двумя dir 300 -Grav Сетевое оборудование 1 27-03-2011 00:11
CMD/BAT - [решено] Цикл с использованием имен файлов Bastet Скриптовые языки администрирования Windows 5 05-07-2010 19:28
[решено] Команда для восстановления системных файлов. alleclf Microsoft Windows 2000/XP 3 15-05-2007 17:14
Помогите с шаблонами ssdm Вебмастеру 2 27-03-2007 05:56
(solved) команда для копирования файлов / каталогов e9990638 Автоматическая установка Windows 2000/XP/2003 5 21-11-2006 14:52




 
Переход