supprimer fichiers avec "extensions incrémentées"

supprimer fichiers avec "extensions incrémentées" - Shell/Batch - Programmation

Marsh Posté le 14-02-2007 à 16:01:23    

Bonjour à tous,
 
N'étant pas un pro des batch, j'aimerais vous demander votre aide pour la création d'un .bat pour supprimer des fichiers spécifiques dans un répertoire:
 
Lors de manipulations de fichiers, il arrive que les dit-fichiers s'incrémentent sous la forme toto.txt.1, toto.txt.2, ceci en gardant le fichier toto.txt dans ce même répertoire. Hors, j'aimerais pouvoir ne garder que le fichier d'origine dans ce répertoire et supprimer tous les autres fichiers incrémentés.
 
Pourriez-vous m'aider à réaliser un .bat ou autre chose qui me permette de faire ça ?
 
Merci d'avance de l'aide que vous m'apporterez.
 
@++

Reply

Marsh Posté le 14-02-2007 à 16:01:23   

Reply

Marsh Posté le 15-02-2007 à 18:58:05    

Personne ne peut m'aider ?  
 
J'ai tenté de faire quelquechose avec

Code :
  1. del c:\test\*.txt.*


mais ça ne fonctionne pas (ça enlève tous les txt, logique vous allez me dire...)
 
J'ai cherché un peu sur le net, peut-etre quelquechose avec une condition qui dit que Si l'extension de toto.txt est supérieur à 0 alors supprimer les fichiers.
Qu'en pensez-vous ?
 
PS: je n'ai jamais fait de programmations, à la base, je suis dessinateur projeteur  :sarcastic:

Reply

Marsh Posté le 23-02-2007 à 14:57:39    

Le truc c'est que MS dos ne sait pas gérer plusieur jokers de type *
 
il faut donc bidouiller :

Code :
  1. md sav
  2. move *.txt sav
  3. DEL *.txt.*
  4. move sav\*.* .


Explications :
1. on crée un répertoire
2. on balance les fichier txt classiques (ceux sans numéro)
3. on efface les txt restants (j'ai mis la commande qui DEVRAIT fonctionner, mais qui ne fonctionne pas en DOS)
4. et ensuite on remet les txt en place
 
Je pars du principe que si je n'arrive pas à sélectionner ceux que je ne désire pas, je regarde si je peux sélectionner ceux que je désire...


Message édité par 4get9 le 23-02-2007 à 15:01:15
Reply

Marsh Posté le 25-02-2007 à 17:13:16    

Le plus simple que j'ai trouvé :
 
@echo off
set /P debut= debut ?  
set /P fin= fin ?  
:boucle
del *.%debut%
set /a debut+=1
if %debut% EQU %fin% goto fin
goto boucle
:fin
 
 
Si sa convient pas :
 
@echo off
set origine=toto.txt
for %%a in (*) do call :commande %%a
exit
:commande
set file=%1
if %file% GTR %origine% del %file%

Reply

Marsh Posté le 26-02-2007 à 09:08:15    

Ta 2e solution oblige à indiquer TOUS les noms de fichiers possibles :/
 
La 1ere est pas mal ! :jap:

Reply

Marsh Posté le 26-02-2007 à 12:28:23    

Hum, dans la 2ieme il faut juste mettre le fichier d'origine (ici toto.txt), j'pensais qu'il n'y en avait qu'un ?
Hum j'comprend pas trop ce que tu veux dire :x

Reply

Marsh Posté le 26-02-2007 à 16:33:18    

Bah en fait moi je pensais qu'il pouvait y en avoir plusieurs :lol:
 
De toutes façons il a pas l'air de beaucoup s'intéresser à notre assistance :/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed