Interchanger le contenu de deux fichiers .bat [Dos]
Jgeo27
-
11:22 -
11:22 -
Bonjour, Avec un script en langage DOS, Je dois interchanger le contenu de deux fichiers .bat.. à l'aide de paramètre. Exemple.. si mon script est script.bat, en faisant : script.bat exemple.bat exemple2.bat le contenu de "exemple" se retrouve dans "exemple2" et le
contenu de "exemple2" se retrouve dans "exemple1" tout ça sans utiliser de copy ni move...
contenu de "exemple2" se retrouve dans "exemple1" tout ça sans utiliser de copy ni move...
6 réponses
-
Bonne idée le type, mais à quoi bon le for ? Et pourquoi 2 fichiers intermédiaires au lieu d'un seul ?
type %1 > interm
type %2 > %1
type interm > %2
del interm
Surtout qu'avec les >>, il ne fallait pas oublier d'effacer exemple1 et exemple2 au milieu -
on copie ligne par ligne en passant par des fichiers intermédiaires
for /f "delims=" %%a in ('type exemple1') do echo %%a >> ex1
for /f "delims=" %%a in ('type exemple2') do echo %%a >> ex2
for /f "delims=" %%a in ('type ex1') do echo %%a >> exemple2
for /f "delims=" %%a in ('type ex2') do echo %%a >> exemple1
del ex1 ex2 -
Bonjour
As-tu pensé à utiliser RENAME pour échanger les noms des fichiers plutôt que leurs contenus ?
Attention quand même : d'une part il faut utiliser un nom de fichier temporaire, et d'autre part ça ne marchera pas si les fichiers sont dans des dossiers différents. -
hello
c'est un exercice ?
utiliser 2 boucles FOR -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Merci pour vos réponses ! ça résout mon problème, mais j'ai un petit problème avec les paramètres si mon fichier qui effectue l'échange s'appelle share.bat et qu'il se trouve dans C:\ et les deux fichiers à interchanger ficher1.bat et fichier2.bat sont également dans c:\ comment faire appel à fichier1.bat et fichier2.bat en paramètre dans le fichier share.bat (à éxécuter en double clic) (Je suis débutant ^^)
Encore merci!
@echo off
share.bat fichier1.bat fichier2.bat
IF "%1" == " " (
echo Votre paramètre 1 est manquant
goto fin)
IF "%2" == " " (
echo Votre paramètre 2 est manquant
goto fin)
type %1 > interm
type %2 > %1
type interm > %2
del interm
:fin
pause > nul