在 Microsoft cmd.exe 中使用 for 循环,如何仅处理具有特定扩展名的文件?

Ale*_*son 2 windows windows-7 batch-file batch windows-command-prompt

我有一个文件夹c:\test\,并在其中两个文件a.txtb.txtv

我只想处理扩展名等于.txt.

如果我写这个命令

cd c:\test
for %f in (*.txt) do echo %f
Run Code Online (Sandbox Code Playgroud)

我会得到其中两个结果a.txtb.txtv上市。

同样的情况发生在

cd c:\test
dir *.txt
Run Code Online (Sandbox Code Playgroud)

好像.txt是一样的.txtv

我有意大利语的 Windows XP SP3 和结果

ver
Run Code Online (Sandbox Code Playgroud)

Microsoft Windows XP [Versione 5.1.2600]

相同的结果来自英语的 Windows 7 Microsoft Windows XP [Version 6.1.7601]

Aug*_*ust 7

尝试使用forfiles。它似乎对扩展返回的内容更具限制性,而且它还具有内置for循环的额外好处。应该已经在 Win7 机器上,但您可能需要在 XP 机器上安装 2003 服务器资源工具包才能在那里安装。