Windows
在 Microsoft cmd.exe 中使用 for 循環,如何僅處理具有特定副檔名的文件?
我有一個文件夾
c:\test\
和兩個文件,a.txt
其中b.txtv
.我想只處理副檔名為
.txt
.如果我寫這個命令
cd c:\test for %f in (*.txt) do echo %f
我將得到兩者都列出的
a.txt
結果b.txtv
。同樣的情況發生在
cd c:\test dir *.txt
好像
.txt
是一樣的.txtv
。我有意大利語版的 Windows XP SP3,結果是
ver
是
Microsoft Windows XP [Versione 5.1.2600]
。同樣的結果來自英文版的 Windows 7
Microsoft Windows XP [Version 6.1.7601]
。
for %%I in (*.*) do if "%%~xI"==".txt" (echo %%I)
那應該這樣做。
編輯:這是“腳本”語法。如果你想在命令行中輸入這個,你必須在每次加倍時刪除一個 % 符號,連結這個:
for %I in (*.*) do if "%~xI"==".txt" (echo %I)
嘗試
forfiles
改用。它似乎對擴展返回的內容有更多限制,而且它還具有內置for
循環的額外好處。應該已經在 Win7 機器上,但您可能必須在 XP 機器上安裝 2003 Server Resource 工具包才能將其安裝到那裡。