Batch : lister noms de ficheirs sans extensio
Résolu/Fermé
A voir également:
- Batch : lister noms de ficheirs sans extensio
- Fichier batch - Guide
- Batch renommer une partie du nom de plusieurs fichiers - Guide
- Modification de plusieurs fichiers avec .bat ✓ - Forum Autoit / batch
- Batch net use - Forum Réseau
- Batch color - Forum Autoit / batch
4 réponses
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
31 août 2009 à 08:51
31 août 2009 à 08:51
hello
tu peux aussi utiliser la variable %~nI
for /F "delims=" %I in ('dir /b') do @echo %~nI
tu peux aussi utiliser la variable %~nI
for /F "delims=" %I in ('dir /b') do @echo %~nI
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
cs-bilou
Messages postés
769
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
24 février 2011
164
30 août 2009 à 22:06
30 août 2009 à 22:06
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