Comment masquer les extensions de fichier dans une sortie d'invite de commande / dir?


9

Ce que je veux faire semble très simple:
j'ai un dossier dans Windows contenant des éléments de différents types, y compris des fichiers PDF, des fichiers TXT et des sous-répertoires. J'écris un fichier .bat d'une ligne pour extraire UNIQUEMENT les noms des fichiers PDF dans un nouveau fichier texte.

Jusqu'à présent, c'est ce que j'ai dans le .bat:

dir *.pdf /b > PDF_LIST.txt

Cela donne la sortie suivante dans un fichier PDF_LIST.txt:

A.pdf
B.pdf
C.pdf

Je voudrais supprimer la partie ".pdf" de chaque ligne dans le fichier txt, car je sais évidemment déjà que chaque fichier est au format PDF par le paramètre * .pdf dans mon instruction dir.

Cela me permettrait simplement de copier / coller tous les noms de fichiers directement depuis le fichier texte dans un document Word pour une transmission que j'envoie à mon client. Si vous pouvez suggérer un moyen meilleur ou plus simple d'obtenir la liste des fichiers sans utiliser de fichier batch, ce serait également utile.

Réponses:


18

Dans votre script:

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

Whoa qui me souffle (jamais vraiment travaillé avec la ligne de commande). Ok je vais essayer. Merci!
NoCatharsis

1
Voir help forà avoir une stimulation crânienne supplémentaire.
pause jusqu'à nouvel ordre.

J'ai corrigé (ce que je pensais) votre faute de frappe dans le code et j'ai exécuté cette commande: pour %% i dans (* .pdf), faites @echo %% ~ ni >> PDF_LIST.txt Je reçois la réponse "%% i était inattendu à ce moment "et aucune autre sortie.
NoCatharsis

2
@NoCatharsis: Désolé pour la faute de frappe. Sur la ligne de commande, utilisez simplement single %. Utilisez %%dans votre fichier batch.
pause jusqu'à nouvel ordre.

Cool, fonctionne comme un charme - merci beaucoup pour l'aide rapide.
NoCatharsis

0

La plupart des éditeurs de texte (y compris le bloc-notes) ont trouvé et remplacé. Utilisez-le pour trouver tous les ".pdf" et remplacez-le par "". Terminé :)

Vous pouvez également définir cela comme macro dans Word.


Oui, j'utilise Notepad ++ pour le faire en ce moment - mais je me demandais simplement s'il y avait un moyen de couper une étape de plus en l'écrivant dans un script.
NoCatharsis
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.