Batch : lister noms de ficheirs sans extensio
Résolu
Profil bloqué
-
Tym -
Tym -
Bonjour,
je tente de faire un batch me permettant de lister les fichiers d'un dossier dans un fichier texte et ce en retirant leur extension.
Pour le moment j'ai un code me permettant de faire ce que je souhaite sauf que je ne sais pas comment retirer l'extension dans la liste créée.
Mon code actuel :
echo off
dir .\dossier\*.ext /b /o n > liste.txt
Ce qui en fait liste les fichiers dont l'extension est .ext contenus dans le dossier "dossier" par ordre alphabétique dans un fichier liste.txt
Donc en gros le contenu de liste.txt est le suivant :
fichier1.ext
fichier2.ext
fichier3.ext
alors que je voudrais :
fichier1
fichier2
fichier3
Merci d'avance pour toute aide
je tente de faire un batch me permettant de lister les fichiers d'un dossier dans un fichier texte et ce en retirant leur extension.
Pour le moment j'ai un code me permettant de faire ce que je souhaite sauf que je ne sais pas comment retirer l'extension dans la liste créée.
Mon code actuel :
echo off
dir .\dossier\*.ext /b /o n > liste.txt
Ce qui en fait liste les fichiers dont l'extension est .ext contenus dans le dossier "dossier" par ordre alphabétique dans un fichier liste.txt
Donc en gros le contenu de liste.txt est le suivant :
fichier1.ext
fichier2.ext
fichier3.ext
alors que je voudrais :
fichier1
fichier2
fichier3
Merci d'avance pour toute aide
A voir également:
- Batch : lister noms de ficheirs sans extensio
- Fichier batch - Guide
- Batch converter - Télécharger - Photo & Graphisme
- Batch renommer une partie du nom de plusieurs fichiers ✓ - Forum Autoit / batch
- Renommer tous les fichiers d'un dossier - Forum Windows
- Color batch - Forum Autoit / batch
4 réponses
Bonjour,
Il est possible de faire cette opération de façon plus élégante et surtout plus certaine :
@ECHO OFF
DEL liste.txt
FOR /F %%I IN ('DIR .\dossier\*.ext /B /O n') DO ECHO %%~nI >> liste.txt
En effet, l'option de format ~n permet de n'avoir que le nom de fichier sans l'extension.
Le problème de la méthode précédente est que si le nom de fichier contient un "." (par exemple : "fichier.avec.des.points.ext", le nom du fichier sera tronqué (il ne restera que "fichier" dans l'exemple précedent).
J'espère que cela servira à certains.
Cordialement,
Tym
Il est possible de faire cette opération de façon plus élégante et surtout plus certaine :
@ECHO OFF
DEL liste.txt
FOR /F %%I IN ('DIR .\dossier\*.ext /B /O n') DO ECHO %%~nI >> liste.txt
En effet, l'option de format ~n permet de n'avoir que le nom de fichier sans l'extension.
Le problème de la méthode précédente est que si le nom de fichier contient un "." (par exemple : "fichier.avec.des.points.ext", le nom du fichier sera tronqué (il ne restera que "fichier" dans l'exemple précedent).
J'espère que cela servira à certains.
Cordialement,
Tym
Essaye sa
Tien moi au courant !
Bilou.
@echo off for /f "tokens=1 delims=." %%i in ('dir .\dossier\*.ext /b /o n') do echo %%i >liste.txt
Tien moi au courant !
Bilou.
Merci bcp après une légère modif j'ai obtenu ce que je voulais :
@echo off
del liste.txt
for /f "tokens=1 delims=." %%i in ('dir .\dossier\*.ext /b /o n') do echo %%i >>liste.txt
Le code précédent listait les fichiers dans liste.txt mais en écrasant à chaque fois du coup à la fin je n'avais qu'un nom dans liste.txt (le dernier de la liste)
en rajoutant >> à la place de > j'avais tous les noms mais si je relancais le batch cela me relistait les ficheirs déjà présents d'où le rajout d'un petit del pr effacer le fiochier avant d'en créer un nouveau.
Encore merci pr ton aide précieuse
@echo off
del liste.txt
for /f "tokens=1 delims=." %%i in ('dir .\dossier\*.ext /b /o n') do echo %%i >>liste.txt
Le code précédent listait les fichiers dans liste.txt mais en écrasant à chaque fois du coup à la fin je n'avais qu'un nom dans liste.txt (le dernier de la liste)
en rajoutant >> à la place de > j'avais tous les noms mais si je relancais le batch cela me relistait les ficheirs déjà présents d'où le rajout d'un petit del pr effacer le fiochier avant d'en créer un nouveau.
Encore merci pr ton aide précieuse