我想知道除擴展名之外,如何顯示目錄中的所有文件。列出除擴展名外的目錄中的所有文件
實施例: .BAT
我的代碼:
Dir /ah-d /b /s "%temp%" >>"Temp.TxT"
結果:
Folder123
image.jpg
TESTE.bat
abc.TMP
結果我想:
Folder123
image.jpg
abc.TMP
注:其他文件可能會有所不同擴展名。
我想知道除擴展名之外,如何顯示目錄中的所有文件。列出除擴展名外的目錄中的所有文件
實施例: .BAT
我的代碼:
Dir /ah-d /b /s "%temp%" >>"Temp.TxT"
結果:
Folder123
image.jpg
TESTE.bat
abc.TMP
結果我想:
Folder123
image.jpg
abc.TMP
注:其他文件可能會有所不同擴展名。
您可以通過管道過濾輸出到FINDSTR,拒絕與您的擴展名結尾線。
/L
選項將搜索視爲文字搜索(而不是正則表達式)。 /E
選項僅在行結束時匹配。 /I
選項使其不區分大小寫。該/V
選項反轉搜索,保持不匹配的線,過濾掉那些匹配
dir /ah-d /b /s "%temp%" | findstr /live .bat >>"temp.txt"
這會選取特定的擴展名 - 無,jp(例如| g)和tmp。
dir /ah-d /b /s "%temp%\*." "%temp%\*.jp*" "%temp%\*.tmp"
要排除管道輸出
dir /ah-d /b /s "%temp%\*.*" | Findstr /i /v /c:".bat" >outputfile
可以通過命令行做到這一點(無批次文件需要):
FOR /F "usebackq tokens=* delims=" %A IN (`DIR /B /S "%temp%"`) DO (IF /I NOT "%~xA"==".bat" ECHO %A>>Out.txt)
這樣做的關鍵部分是%~xA
部這將返回正在處理的文件的文件擴展名。然後將它與要排除的擴展名(在本例中爲.bat
)進行比較,如果不匹配,則將文件名寫入輸出。
請注意,在您的示例中,您顯示的是正在返回的目錄,因此我的DIR
命令不會排除它們。此外,由於您正在使用/S
開關,因此將返回完整路徑。如果你只是想獲取文件名部分,只需更換:
ECHO %A
有了:
ECHO %~nxA
這不是完全可靠的線條 - 這將排除任何與'它.bat',例如: 'this.bat.txt','myfile.bat1' –
那麼,它有多大可能性。 – Serenity
你不應該對你的數據做出假設。 –