Ligne de commande dans un fichier.bat ?

Résolu
DUME06 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   -  
DUME06 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour

Dans un fichier de commande.BAT j'ai l'instruction suivante :

Del /p E:"Sauve Journaliere.7z"

en retour j'obtiens bien => E:\Sauve Journaliere.7z, Supprimer (O/N) ?

je valide bien avec O ; mais après je suis obligé de confirmer en faisant entrée !

Y a t-il un moyen pour que O(oui) s'exécute automatiquement sans confirmation ?

Merci pour vos conseils et bonne journée

DUME06

A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

bonjour,

n'est-il pas plus simple de ne pas demander de confirmation?

1
brucine Messages postés 21615 Date d'inscription   Statut Membre Dernière intervention   3 406
 

Bonjour,

Si on veut le beurre et l'argent du beurre, afficher le message de suppression (et donc prendre une décision différente selon Oui ou Non) sans taper sur Entrée, passer par une commande CHOICE

 

@ECHO OFF
CHOICE /C:ON /M "Supprimer O/N"
IF ERRORLEVEL ==2 GOTO TWO
IF ERRORLEVEL ==1 GOTO ONE
:TWO
REM FAIRE CE QUE JE VEUX SANS SUPPRESSION
REM GOTO 
:ONE
DEL /Q "E:\Sauve Journaliere.7z"
REM FAIRE CE QUE JE VEUX AVEC SUPPRESSION
:END
pause
0
brucine Messages postés 21615 Date d'inscription   Statut Membre Dernière intervention   3 406 > brucine Messages postés 21615 Date d'inscription   Statut Membre Dernière intervention  
 

à supposer qu'il n'y ait qu'une sauvegarde journalière (sinon il faut ajouter des contrôles) et que la sauvegarde 7z soit elle aussi obtenue à la ligne de commande, on a d'ailleurs plus vite fait de tout faire d'un coup de fusil, si la nouvelle sauvegarde est créée on ne se pose pas la question de supprimer l'ancienne, en datant ces sauvegardes sur le mode:
 

@ECHO OFF
FOR /F "usebackq" %%i IN (`PowerShell $date ^= Get-Date^; $date ^= $date^; $date.ToString^('ddMMyyyy'^)`) DO SET NewDate=%%i
FOR /F "usebackq" %%j IN (`PowerShell $date ^= Get-Date^; $date ^= $date.AddDays^(-1^)^; $date.ToString^('ddMMyyyy'^)`) DO SET OldDate=%%j

REM SAUVEGARDE au format Sauve_journaliere%NewDate%.7z 
DEL /Q E:\Sauve_Journaliere%OldDate%.7z

Je ne sais pas quel utilitaire permet ces "fantaisies" à la ligne de commande pour le format 7z, PowerArchiver 6 le fait sans problème au format zip, il est (était) payant mais doit de nos jours pouvoir se trouver à l'oeil sur un site d'archives et je pense que 7Zip le fait aussi.

0
DUME06 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   24
 

Bonjour yg_be

Vous avez entièrement raison; c'est l'évidence même.....

Merci pour vos conseils et bonne fin de journée.

DUME06

0
DUME06 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   24 > brucine Messages postés 21615 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour brucine

Merci infiniment pour votre aide et vos conseils.

Je vous souhaite un bon week-end et vous renouvelle mes remerciements.

DUME06

0
brucine Messages postés 21615 Date d'inscription   Statut Membre Dernière intervention   3 406 > DUME06 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention  
 

Malgré tout je ne ferais pas ça: un tel script doit en principe s'assurer que la sauvegarde J-1 existe et que la sauvegarde J a bien été effectuée avant de supprimer la sauvegarde J-1

Une sauvegarde incrémentielle va sinon toujours beaucoup plus vite même sur de très gros dossiers (je sauvegarde tous les jours sur 2 supports en quelques minutes ce qui représenterait au total de l'ordre de 120 Go) et on en n'a alors qu'une, mais pas forcément évidente à mettre en oeuvre dans un fichier compressé.

La place est-elle rare au point qu'il doive l'être?



 

1