Windows

在 Microsoft cmd.exe 中使用 for 循環,如何僅處理具有特定副檔名的文件?

  • July 2, 2012

我有一個文件夾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 工具包才能將其安裝到那裡。

引用自:https://serverfault.com/questions/404083