如何在命令提示符/ dir输出中隐藏文件扩展名?


9

我想做的事情似乎很简单:
我在Windows中有一个文件夹,其中包含各种类型的项,包括PDF文件,TXT文件和子目录。我正在编写一个.bat文件,仅将PDF文件名提取到一个新的文本文件中。

到目前为止,这是我在.bat中所拥有的:

dir *.pdf /b > PDF_LIST.txt

这将在PDF_LIST.txt文件中提供以下输出:

A.pdf
B.pdf
C.pdf

我想在txt文件中删除每行的“ .pdf”部分,因为我显然已经知道,通过dir语句中的* .pdf参数,每个文件都是PDF格式。

这将使我可以更轻松地将所有文件名直接从文本文件复制/粘贴到Word文档中,以便发送给我的客户。如果您可以建议一种更好或更简单的方法来获取文件列表而不使用批处理文件,那也将有所帮助。

Answers:


18

在您的脚本中:

for %%i in (*.pdf) do @echo %%~ni >> PDF_LIST.txt

哇,真让我大吃一惊(从未真正使用过命令行)。好吧,我会试一试。谢谢!
NoCatharsis 2010年

1
看到help for有一些额外的颅骨刺激。
暂停,直到另行通知。

我在代码中纠正了(我认为是)您的错字并运行了此命令:对于(* .pdf)中的%% i,请@echo %%〜ni >> PDF_LIST.txt我得到了响应“ %% i当时是意外”,没有其他输出。
NoCatharsis 2010年

2
@NoCatharsis:很抱歉输入错误。在命令行中只需使用single即可%。使用%%在批处理文件。
暂停,直到另行通知。

很酷,就像魅力一样-非常感谢您的快速帮助。
NoCatharsis 2010年

0

大多数文本编辑器(包括记事本)都有查找和替换的功能。只需使用它找到所有“ .pdf”并将其替换为“”即可。完成:)

您也可以将其设置为宏。


是的,我现在使用Notepad ++进行此操作-但是我只是想知道是否有一种方法可以通过将其写入脚本来减少一个步骤。
NoCatharsis 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.