Jak ukryć rozszerzenia plików w wierszu polecenia / katalogu wyjściowym?

9

To, co chcę zrobić, wydaje się bardzo proste:
mam folder w systemie Windows zawierający elementy różnych typów, w tym pliki PDF, pliki TXT i podkatalogi. Piszę jednowierszowy plik .bat, aby pobrać TYLKO nazwy plików PDF do nowego pliku tekstowego.

Do tej pory mam to w .bat:

dir *.pdf /b > PDF_LIST.txt

Daje to następujące dane wyjściowe w pliku PDF_LIST.txt:

A.pdf
B.pdf
C.pdf

Chciałbym upuścić część „.pdf” każdej linii w pliku txt, ponieważ oczywiście już wiem, że każdy plik ma format PDF według parametru * .pdf w mojej instrukcji dir.

Ułatwi mi to kopiowanie / wklejanie wszystkich nazw plików bezpośrednio z pliku tekstowego do dokumentu tekstowego w celu przesłania, które wysyłam do mojego klienta. Jeśli możesz zasugerować lepszy lub łatwiejszy sposób na uzyskanie listy plików bez użycia pliku wsadowego, to również byłoby pomocne.

Bez katharsis
źródło

Odpowiedzi:

18

W twoim skrypcie:

for %%i in (*.pdf) do @echo %%~ni >> PDF_LIST.txt
Wstrzymano do odwołania.
źródło
Whoa, który oszałamia mój umysł (nigdy tak naprawdę nie działał z wierszem poleceń). Ok, dam temu szansę. Dzięki!
NoCatharsis,
1
Zobacz, help foraby uzyskać dodatkową stymulację czaszki.
Wstrzymano do odwołania.
Poprawiłem (jak myślę) twoją literówkę w kodzie i uruchomiłem następującą komendę: dla %% i in (* .pdf) do @echo %% ~ ni >> PDF_LIST.txt Otrzymuję odpowiedź "%% i w tej chwili był nieoczekiwany ”i nie ma innych wyników.
NoCatharsis,
2
@NoCatharsis: Przepraszamy za literówkę. W wierszu polecenia użyj pojedynczego %. Użyj %%w pliku wsadowym.
Wstrzymano do odwołania.
Fajnie, działa jak urok - wielkie dzięki za szybką pomoc.
NoCatharsis,
0

Większość edytorów tekstu (w tym notatnik) ma funkcję wyszukiwania i zastępowania. Wystarczy użyć go, aby znaleźć wszystkie „.pdf” i zastąpić je „”. Gotowy :)

Możesz również ustawić to jako makro w słowie.

Słoneczny
źródło
Tak, używam Notepad ++, aby to zrobić w tej chwili - zastanawiałem się jednak, czy istnieje sposób, aby wyciąć jeszcze jeden krok, zapisując go w skrypcie.
NoCatharsis,