我目前在一個檔案夾中有一個檔案串列,我需要遍歷并排除與模式匹配的非生產檔案。如何在批處理命令中搜索多個字串?
例如我有檔案
- QA_test_1.txt
- QA_809_test.txt
- dev_93439_sd.txt
- stg_abc_sldkf_df.txt
- prod_4845_sdfd.txt
- prod_998_sdfd.txt
- live_lskd_sd3434.txt
- xyz_sdfdf_s3rer.txt
從上面的串列中,我需要排除每個包含單詞“dev”,QA“Stg”的檔案并生成一個沒有它們的檔案串列 - 這是
- prod_4845_sdfd.txt
- prod_998_sdfd.txt
- live_lskd_sd3434.txt
- xyz_sdfdf_s3rer.txt
問題是 - 我找不到任何可以對多個字串執行 grep 等效的批處理命令。FindStr 僅針對一個字串執行此操作,因此我無法使其正常作業。這是我的代碼
set i=0
for /F "delims=" %%a in ('dir /B /A /S Path *.txt') do (
set /A i =1
rem put the file names in array
set list[!i!]=%%~na
rem try to find the file names
echo %%~na|find "dev" or "qa" or "stg" >nul
if errorlevel 1 (echo notfound) else (echo found %%~na )
)
uj5u.com熱心網友回復:
謝謝大家的回復。我能夠做到以下方式
echo %%~na|findstr /i /v "dev QA Stg" >nul
if errorlevel 1 (echo not found %%~na) else (echo %%~na>>newfile.txt)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/466108.html
