Batch sauvegarde + incrémentatation

Bonjour,

je suis novice dans les batch et malgres les diverses aides sur internet , je n’arrive pas à créer ce que je veux
Je m’explique
Je souhaite sauvegarder tous les jours un fichier qui porte toujours le meme nom.
En gros le fichier s’appel : X.TXT
je veux qu’il le copie dans un repertoire A et renomme en X1.TXT
et chaque jour il resauvegarde le X.TXT , le copie dans le repertoire A et renomme en X2.TXT
et comme chaque jour X3.txt x4.txt x5.txt

Merci bcp de votre aide !

Pas trop facile pour débuter en batch
Et pas de solution évidente, sauf peut être avec Set /A
Et encore, à condition que les fichiers aient bien toujours le même radical

A la limite, ce serait plus facile d’ajouter la date du jour.
Autrement, il reste la solution WSH

sous quel os ?

en bash :slight_smile:


#!/bin/bash

if [[ -f n.txt ]];then
  n=$(<n.txt)
else
  n=1
fi

cp -f x.txt a/x$n.txt

echo $(($n+1))>n.txt

Sous windows Xp , avec un .Bat

je peux mettre ton code dans un .Bat ça fonctionnera ?

Bonne question.
Avec les .txt, j’étais parti sur du windows.
Donc en windows, ca pourrait se faire en 2 fichiers
En supposant les fichiers de la forme Xn.TXT

@echo off
rem a.bat 
rem programme principal - usage : a <nom_du_fichier_a_copier>
set index=0
for %%I in (X*.TXT) do call b %%~nI
set /a index+=1
rem copie du fichier source sous le nouveau nom
copy %1 X%index%.TXT
set index=
set index1=

@echo off
rem b.bat
rem programme appele par a.bat
set index1=%1
set index1=%index1:~1%
if %index1% GTR %index% set index=%index1%

Merci beaucoup gcc de ton aide
J’ai copier deux fichiers bat en rajouter tes lignes et un fichier Xn.TXT mais rien ne se produit

Cette ligne : copy %1 X%index%.TXT

je dois mettre le chemin ou ça va copier le fichier ?

tu peux nous la refaire en français ?