可能重复:
在命令提示符中递归获取裸文件名
我想递归列出目录中的所有文件,仅显示文件名(不带扩展名和完整路径)。我使用的是 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
}