2010-10-20 37 views
0

開始我有執行與文本「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 

有誰知道我該怎麼做? 我可以使用正則表達式來處理這類事情嗎?

批處理文件將在Windows XP中的CMD下運行。

乾杯

回答

1

在批處理,通常你可以使用findstr/V否定的正則表達式,如

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

嘗試通過文件名來findstr,看看它是如何去

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