如何在 DOS/Windows 中递归列出文件名(仅)?

如何在 DOS/Windows 中递归列出文件名(仅)?

可能重复:
在命令提示符中递归获取裸文件名

我想递归列出目录中的所有文件,仅显示文件名(不带扩展名和完整路径)。我使用的是 Windows/DOS。

我能得到的最接近dir的是dir /s /b,但它列出了完整路径并显示了扩展。

好吧,也许我可以忍受扩展,但我必须摆脱路径!

有任何想法吗?

答案1

cd /d C:\Path\To\Source\Folder
for /r %i in (*) do @echo %~ni

如果需要将列表保存到文件中,请将其附加>> C:\Path\To\list_file.txt到命令的末尾for

如果你最终想要扩展,请更改%~ni%~nxi

要在批处理文件中使用,请将所有更改%%%

答案2

如果您愿意加载 powershell,这个命令就可以了。

get-childitem "d:\acc" -recurse|foreach {$_.Basename}

答案3

做如下的事情应该可以得到你想要的东西:

@for /f "delims=" %a in ('Dir /s /b %systemdrive%') do echo %~na

只需将输出传输到文件并在需要时从那里使用它。

答案4

不知道您是否会将其视为第三方软件,因为它是 Microsoft 的,并且随 7 一起提供,但 powershell 可以非常轻松地解决您的大部分问题。如果您尚未安装它,可以在 Microsoft 的网站上找到适用于 XP 的版本。

Get-ChildItem -path "C:\Program Files\" -recurse | foreach ($_) {
    write $_.name
}

相关内容