Пакетный файл: Список всех файлов, не начинающихся с SP

У меня есть пакетный файл DOS, который выполняет действие для файлов, начинающихся с текста «SP», следующим образом:

FOR /F "tokens=*" %%A IN ( 'DIR SP*.sql /s /b' ) DO ECHO .compile_file = "%%A" >> output.txt

Ключевой бит здесь, очевидно:

DIR SP*.sql /s /b

Мне нужно сделать то же самое перед строкой "FOR" выше, но для всех остальных файлов, не начинающихся с SP*.sql

Что-то типа:

FOR /F "tokens=*" %%A IN ( 'DIR [^SP]*.sql /s /b' ) DO ECHO .run_file = "%%A" >> output.txt
FOR /F "tokens=*" %%A IN ( 'DIR SP*.sql /s /b' ) DO ECHO .compile_file = "%%A" >> output.txt

Кто-нибудь знает, как я могу это сделать? Могу ли я использовать регулярное выражение для такого рода вещей?

Пакетный файл будет работать под CMD в Windows XP.

Ваше здоровье


person Tim    schedule 20.10.2010    source источник


Ответы (1)


В пакетном режиме обычно вы можете использовать findstr с /V для отрицания регулярного выражения, например

.... | findstr /V "^SPL"

попробуйте передать имя файла findstr и посмотрите, что получится

%~nI        - expands %I to a file name only
person ghostdog74    schedule 20.10.2010