2012-10-07 4 views
0

Je dois basculer rapidement l'extension de tous les fichiers contenus dans un dossier spécifique. Supposons que C:\My Folder\ contient 200 fichiers (tous .txt)Activer ou désactiver les extensions

PAR LE SCRIPT J'EXECUTION les changer tous .xml

puis

PAR LA MÊME EXECUTION SCRIPT Encore une fois je les changer tous à .txt.

En d'autres termes l'exécution ce seul script tournera indéfiniment ces 200 fichiers (si elles sont .txt) à .xml et (si elles sont .xml) à .txt et boucle ...

Pour un lot que j'avais à l'esprit quelque chose comme ça (ce qui ne pas travail):

@echo off 

IF EXIST "C:\My Folder\*.txt" GOTO RENAMETXT 
IF NOT EXIST "C:\My Folder\*.txt" GOTO RENAMEXML 

:RENAMETXT 
ren "C:\My Folder\*.txt" "*.xml" 

:RENAMEXML 
ren "C:\My Folder\*.xml" "*.txt" 

Répondre

2

Votre script batch proposé ne fonctionne pas parce que la partie :RENAMETXT tombe à travers à :RENAMEXML. Il pourrait être réparé en insérant simplement EXIT /B avant :RENAMEXML.

Mais il n'y a pas besoin de GOTO ou EXIT/B - Vous pouvez simplement utiliser IF ... ELSE ...

@echo off 
if exist "C:\My Folder\*.txt" (
    ren "C:\My Folder\*.txt" *.xml 
) else (
    ren "C:\My Folder\*.xml" *.txt 
) 
+0

Merci pour repérer mon erreur (la partie EXIT/B manquante) et grâce aussi pour la (beaucoup plus simple) IF ... ELSE ... solution, qui, BTW je me suis essayé plus tôt mais puisque j'ai oublié d'ajouter les parenthèses il (évidemment) n'a pas fonctionné;) ... Maintenant je sais pourquoi! À votre santé! –

+2

@dbenham - Au moins pour Win XP et 7, le deuxième paramètre à ren doit être un 'nom de fichier': cp. "ren /? => REN [lecteur:] [chemin] nomfichier1 nomfichier2. ... Notez que vous ne pouvez pas spécifier un nouveau lecteur ou un nouveau chemin pour votre fichier de destination." –

+0

@ Ekkehard.Horner - Bien sûr, vous avez raison, merci. Erreur stupide de ma part. Tout est fixé. – dbenham

Questions connexes