批处理文件:列出所有不以“SP”开头的文件

时间:2010-10-20 02:56:24

标签: regex file batch-file cmd dos

我有一个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

有谁知道我怎么做到这一点? 我可以使用正则表达式吗?

批处理文件将在Windows XP中的CMD下运行。

干杯

1 个答案:

答案 0 :(得分:1)

批处理时,通常可以findstr使用/V来取消正则表达式,例如

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

尝试将文件名传递给findstr,看看它是怎么回事

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