如何在CMD中列出目录/子目录中所有文件而不包含路径名?

9
我有一个包含许多子目录的目录。在这些子目录中有大量的.asf,.jpg和.txt文件。我想列出目录和子目录中所有*.asf文件,但不显示路径名。
所以基本上我想执行dir /s命令,但不显示完整的路径名。有没有方法可以做到这一点。
4个回答

12

这条命令可能会对一些人有帮助,虽然已经发表得比较晚了。

forfiles /m *.asf /s >d:\Hitendra.Txt

这里,正如大家所知,在(>)之后,我将结果保存在计算机D驱动器上一个名为Hitendra.txt的文件中。


谢谢,这就是我要找的。 - deathlock

6

检查:

FORFILES /S /C "CMD /C ECHO @relpath"

5

在cmd命令提示符下尝试以下操作:

for /r %a in (*.asf) do @echo %~tza %~nxa

仅名称:

for /r %a in (*.asf) do @echo %~nxa

非常感谢你。这真的帮了我。 :) - Steve Johnson

4

您可以尝试

dir /s | findstr .asf

编辑:我认为这会有所帮助。这是我的 test.bat 文件。

@echo off
for /f "usebackq TOKENS=*" %%i in (`dir /s /b *.txt`) do echo %%~nxi
pause

/f usebackq 告诉计算机,反引号内的内容将作为dos命令执行。
TOKENS=* 可以解析带有空格的文件名。
echo %%~nxi - n仅列出文件名,x仅列出扩展名。两者结合可显示文件名和扩展名。
编辑: usebackq不是必需的,可以使用单引号。

感谢您的回复。不过,这仍然列出了每个文件的完整路径,我只想提取“filename.asf”。 - Nicknz125
usebackq 表示引用方案已更改,不是后面跟着一个命令。请参见 for /? 获取帮助。你这里不需要使用 usebackq - Endoro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接