我有一個檔案夾Demos1,里面的檔案都帶有.replay擴展名。
我在父檔案夾中有一個批處理腳本Demos1以及一個檔案,該檔案的檔案名我只想保存在一個名為namediff.txt.
我想namediff.txt針對在目錄中找到的檔案遞回掃描每個檔案名,如果檔案名(每行一個)namediff.txt與目錄中找到的檔案不匹配,請洗掉該檔案Demos1并只保留檔案名txt 檔案中的匹配項。
這就是我到目前為止所擁有的。
PUSHD "%~dp0Demos1"
:--------------------------------------------------------------------------------------------
FOR /F "TOKENS=*" %%A IN ('DIR /B "*.replay"') DO (
FOR /F "TOKENS=*" %%G IN ('%%~nxA') DO (
IF NOT "%%~nxA"=="%%~nxG" ECHO DEL "%%~nxG"
)
)
uj5u.com熱心網友回復:
FOR /F "TOKENS=*" %%A IN ('DIR /B /a-d "*.replay" ^|findstr /x /i /v /g:namediff.txt') DO echo del "%%A"
應該這樣做。Findstr查找與不區分大小寫/x完全匹配的行,并生成與./i/g:filecontainingstringstomatch/vdir
^需要轉義管道,這表明cmd管道是要執行的命令的一部分,而不是for.
/ad 排除目錄名稱匹配 - 只是一種帶大括號的方法。
del只是echo出于測驗目的而編輯。驗證后洗掉echo關鍵字以洗掉檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/446341.html
上一篇:嘗試按順序在串列串列中添加重復項
