Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Не работает CMD-скрипт для сортировки файлов. (http://forum.oszone.net/showthread.php?t=245736)

Drake69 29-10-2012 18:15 2014447

Не работает CMD-скрипт для сортировки файлов.
 
Всем всего доброго, вне времени суток!

ОЧ. нужна Ваша помощь! ... в написании (исправлении) скрипта!

Суть - скрипт должен копировать файлы из папки 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"
        )
)



Время: 00:45.

Время: 00:45.
© OSzone.net 2001-