Renommer deux fichiers

Renommer deux fichiers - Shell/Batch - Programmation

Marsh Posté le 03-06-2010 à 21:43:17    

Bonjour, j'aurais besoin d'un fichier batch qui ferait ceci:
 
regarder dans un dossier XYZ si le fichier XXA existe. Si oui il renomme le fichier XX en XXR et renomme ensuite le fichier XXA en XX. S'il n'existe pas il renomme le fichier XX en XXA et le fichier XXR en XX.
 
un exemple concret: j'ai un fichier appelé config qui est chargé par un jeu. Pour pouvoir facilement changer de config, il faut qu'il renomme ma première config en un nom temporaire pour pouvoir renommer la deuxième config en config et que le jeu charge la deuxième plutot que la première. En gros j'ai deux fichiers: "Config" et "Config renaud" la première est en fait "Config sam" mais pour que le jeu la charge il faut bien qu'elle ait le bon nom. Donc ci je lance le batch, il vérifie si le fichier "Config renaud" existe. Si oui il renome le fichier "Config" en "Config sam" et ensuite il renomme le fichier "Config renaud" en "Config". S'il n'existe pas cela veut dire que le fichier "Config sam" existe et donc il faut renommer "Config" en "Config renaud" et renommer ensuite "Config sam" en "Config"
 
C'est pas facile à expliquer j'espère que vous pourrez m'aider

Reply

Marsh Posté le 03-06-2010 à 21:43:17   

Reply

Marsh Posté le 04-06-2010 à 17:47:34    

supersam2 a écrit :

un exemple concret: j'ai un fichier appelé config qui est chargé par un jeu. Pour pouvoir facilement changer de config, il faut qu'il renomme ma première config en un nom temporaire pour pouvoir renommer la deuxième config en config et que le jeu charge la deuxième plutot que la première. En gros j'ai deux fichiers: "Config" et "Config renaud" la première est en fait "Config sam" mais pour que le jeu la charge il faut bien qu'elle ait le bon nom. Donc ci je lance le batch, il vérifie si le fichier "Config renaud" existe. Si oui il renome le fichier "Config" en "Config sam" et ensuite il renomme le fichier "Config renaud" en "Config". S'il n'existe pas cela veut dire que le fichier "Config sam" existe et donc il faut renommer "Config" en "Config renaud" et renommer ensuite "Config sam" en "Config"


 
 
Moi ça m'épuise ce genre de question à 2 balles. Déjà ce n'est pas parce que "Config renaud" n'existe pas que "Config sam" existe forcément.
 
Sinon désolé, je ne connais pas assez le batch pour faire ça. En plus, ton algo fait qu'à chaque fois, c'est l'un des deux fichiers "config sam" ou "config renaud" qui reste dans le dossier car l'autre a été renommé. T'as pas peur de foirer et de perdre les deux ?
Alors si j'étais toi, je garderais en permanence les deux fichiers config et je créerais deux batch. Le premier effacerait "config" et copierait "config sam" en config et le second ferait pareil mais à partir de "config renaud". Comme ça, si ça foire, tu conserves tes fichiers de base...


Message édité par Sve@r le 04-06-2010 à 18:46:43

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 04-06-2010 à 20:08:25    

ok merci (bien que ce que je dis est toujours vrai DANS MON FICHIER évidemment c'est un batch très personalisé)

Reply

Marsh Posté le 09-06-2010 à 15:43:58    

Tu peux faire quelque chose comme ça :

Code :
  1. @ECHO ON
  2. SET Config_0=U:\TEMP\game.cfg
  3. SET Config_1=U:\TEMP\Renaud.cfg
  4. SET Config_2=U:\TEMP\Sam.cfg
  5. IF EXIST %Config_1% (
  6.    SET old=%Config_2%
  7.    SET new=%Config_1%
  8. ) ELSE (
  9.    SET old=%Config_1%
  10.    SET new=%Config_2%
  11. )
  12. CALL :RENOMME_CONFIGS "%old%" "%new%" "%Config_0%"
  13. GOTO :EOF
  14. GOTO :_AFTER_RENOMME_CONFIGS
  15. :RENOMME_CONFIGS
  16.    RENAME "%~3" "%~nx1"
  17.    RENAME "%~2" "%~nx3"
  18.    GOTO :EOF
  19. :_AFTER_RENOMME_CONFIFS

Exemple d'utilisation :

U:\TEMP>dir *.cfg
 Le volume dans le lecteur U s'appelle Data
 Le numéro de série du volume est 7404-6451
 
 Répertoire de U:\TEMP
 
09/06/2010  15:35                 9 game.cfg
09/06/2010  15:35                 9 Sam.cfg
               2 fichier(s)               18 octets
               0 Rép(s)  55 686 447 104 octets libres
 
U:\TEMP>type *.cfg
 
game.cfg
 
 
renaud
 
Sam.cfg
 
 
sam
 
U:\TEMP>sam2.bat
 
U:\TEMP>dir *.cfg
 Le volume dans le lecteur U s'appelle Data
 Le numéro de série du volume est 7404-6451
 
 Répertoire de U:\TEMP
 
09/06/2010  15:35                 9 game.cfg
09/06/2010  15:35                 9 Renaud.cfg'
               2 fichier(s)               18 octets
               0 Rép(s)  55 686 447 104 octets libres
 
U:\TEMP>type *.cfg
 
game.cfg
 
 
sam
 
Renaud.cfg'
 
 
renaud
 
U:\TEMP>sam2.bat
 
U:\TEMP>dir *.cfg
 Le volume dans le lecteur U s'appelle Data
 Le numéro de série du volume est 7404-6451
 
 Répertoire de U:\TEMP
 
09/06/2010  15:35                 9 game.cfg
09/06/2010  15:35                 9 Sam.cfg
               2 fichier(s)               18 octets
               0 Rép(s)  55 686 447 104 octets libres
 
U:\TEMP>type *.cfg
 
game.cfg
 
 
renaud
 
Sam.cfg
 
 
sam
 
U:\TEMP>


 
Jean-Pierre.

Reply

Sujets relatifs:

Leave a Replay

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