Тема: CMD/BAT: Cкрипт для сортировки файлов
Всем привет!
ОЧ. нужна Ваша помощь! ... в написании (исправлении) скрипта!
Суть - скрипт должен копировать файлы из папки IN (которые там постоянно появляются) в папки OUT и ARC таким образом:
- если файл в папке IN подписан двумя и более электронными подписями (ЭП) - то он копируется в папку OUT и в ARC, если количество ЭП меньше 2-х то файл копируется только в ARC. После успешного копирования файл из папки IN – удаляется. Количество подписей под файлом можно определить по результату работы программы - (sign.exe /s «путь\имя файла» >test.txt). В созданном текстовом файле (test.txt) число ЭП будет в шестой строчке пятым словом - проверял.. - для одного файла (не в цикле)- все работает.
Написал скрипт для обработки любых файлов из каталога (In), но в цикле (for do) он перестал работать - НЕ ПРОИСХОДИТ ПОДСТАНОВКА НОВЫХ ЗНАЧЕНИЙ ДЛЯ ПЕРЕМЕННОЙ "colep" из файла "test.txt".
Интуитивно, догадываюсь что решение в использовании - "setlocal enabledelayedexpansion" - отложенного раскрытия переменной !colep! , но не знаю как это добавить в скрипт. Помогите! ... или подскажите альтернативный вариант решения этой задачи.
Буду благодарен, Всем кто откликнется!
@echo off
for %%I in (in\*.*) do (sign.exe /s %%I >test.txt
for /f "skip=5 tokens=5" %%k in (test.txt) do (set colep=%%k)
if %colep% GEQ 2 (
copy "In\%%~nxI" "OUT\%%~nxI"
@echo %time:~0,8% %date:~3,10% -- %%~nxI --- ЭП %colep% OUT >>log.log
)
copy "In\%%~nxI" "ARC\%%~nxI"
if exist "ARC\%%~nxI" (
@echo %time:~0,8% %date:~3,10% -- %%~nxI --- ЭП %colep% ARC >>log.log
del /Q "In\%%~nxI"
)
)