如何在不显示扩展名的情况下进行目录(批处理)

How to dir without showing extension (batch)

比如我有文件夹d:\temp\,里面有四个word文档文件(.doc)

我知道

dir /b "d:\temp"

会给我

File1.doc
File2.doc
File3.doc
File4.doc

但是如何做到只有文件名没有扩展名呢?

喜欢

File1
File2
File3
File4
for %a in ("d:\temp\*") do @echo %~na

或批处理文件:

for %%a in ("d:\temp\*") do @echo %%~na

同时显示您可以使用的目录:

for /f "delims=" %%a in (' dir /f "d:\temp\*"') do @echo %%~na

以下代码,当 运行 通过使用 @echo off 的批处理文件时,应该可以工作:

for /f "skip=7 tokens=5 delims=. " %%g in ('dir d:\temp') do echo %%g

将打印所有不带空格的文件名。对我的 F:\ 拇指驱动器进行了测试。

编辑: for /f "tokens=1 delims=." %%g in ('dir /b d:\temp') do echo %%g

将打印出带空格的给定路径中的文件和目录,而且更简单。

另一个与上面版本略有不同的版本:

for /f %x in ('dir /b /on *.doc') do @echo %~nx