Пакетный файл: список всех файлов, не начинающихся с "SP" - PullRequest
0 голосов
/ 20 октября 2010

У меня есть пакетный файл 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.

Cheers

1 Ответ

1 голос
/ 20 октября 2010

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

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

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

%~nI        - expands %I to a file name only
...