Как скрыть расширения файлов в командной строке / выводе dir?

9

То, что я хочу сделать, кажется очень простым: у
меня есть папка в Windows, содержащая элементы различных типов, включая файлы PDF, файлы TXT и подкаталоги. Я пишу .bat файл в одну строку, чтобы вытащить ТОЛЬКО имена файлов PDF в новый текстовый файл.

Пока это то, что я имею в .bat:

dir *.pdf /b > PDF_LIST.txt

Это дает следующий вывод в файл PDF_LIST.txt:

A.pdf
B.pdf
C.pdf

Я хотел бы удалить часть «.pdf» каждой строки в текстовом файле, поскольку я, очевидно, уже знаю, что каждый файл находится в формате PDF с помощью параметра * .pdf в моем выражении dir.

Это облегчит мне копирование / вставку всех имен файлов непосредственно из текстового файла в текстовый документ для передачи, которую я отправляю своему клиенту. Если вы можете предложить лучший или более простой способ получить список файлов без использования командного файла, это также будет полезно.

NoCatharsis
источник

Ответы:

18

В вашем скрипте:

for %%i in (*.pdf) do @echo %%~ni >> PDF_LIST.txt
Приостановлено до дальнейшего уведомления.
источник
Вау, которая поражает меня (никогда не работала с командной строкой). Хорошо, я сделаю это. Спасибо!
NoCatharsis
1
Посмотрите, help forчтобы иметь дополнительную стимуляцию черепа.
Приостановлено до дальнейшего уведомления.
Я исправил (как я думаю, был) вашу опечатку в коде и выполнил эту команду: для %% i в (* .pdf) do @echo %% ~ ni >> PDF_LIST.txt Я получаю ответ "%% i был неожиданным в это время "и никаких других выходных.
NoCatharsis
2
@NoCatharsis: Извините за опечатку. В командной строке просто используйте single %. Используйте %%в вашем командном файле.
Приостановлено до дальнейшего уведомления.
Круто, работает как шарм - большое спасибо за быструю помощь.
NoCatharsis
0

Большинство текстовых редакторов (включая блокнот) имеют функцию поиска и замены. Просто используйте его, чтобы найти все ".pdf" и замените его на "". Выполнено :)

Вы также можете установить это как макрос в слове.

Солнечный
источник
Да, я использую Notepad ++, чтобы сделать это прямо сейчас - однако мне было просто интересно, есть ли способ вырезать еще один шаг, записав его в скрипт.
NoCatharsis