Batch autocompression et autosave

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
falcom77
Batcheur occasionnel
Messages : 1
Enregistré le : 16 août 2016 18:09

Batch autocompression et autosave

Message par falcom77 »

Bonjour,

J'aimerai sollicité vos lumière concernant un batch que j'essaie de mettre au point,
pas facile de tout comprendre avec toute les informations qui traine sur le net. Le But serai de pouvoir compresser le dossier du jeux fraichement sauvegardé, la compresser puis la déplacer dans un lecteur réseaux
Bien sure l'inverse pourrait devenir une possibilité.

Explication:

Comme vous le savez peut-être il y a un bon bout de temps que valve a développer sont interface de gestion de jeux, et depuis quelques années la possibilité de les sauvegardés.

Le Programme batch:

Par défaut toute sauvegarde se retrouve dans le dossier "backup"

Action souhaité:
1) si dans backup j'ai un dossier alors tu lance la compression 7za.
2) si dans backup je repaire l’extension .tar alors tu la compression en .gzip.
3) si dans backup je repaire l'extension .targz (ou .tar.gzip) alors je déplace les éléments dans le lecteur réseaux.

(Attention:ce choix de compresser tout un dossier en tar.gzip est du fait que les dossiers brut prennent beaucoup de place d'ou se choix.)

Voici le code coté variable que j'ai commencé à faire mais je n'est aucune idée si la méthode est bonne ou pas,
je souhaite faire quelque chose de propre et le partager lorsque se sera mis au point.

Ce code fait par mes soin me semble confus j'aimerai avoir votre avis concernant l'organisation ou erreur éventuel que j'aurais commis sans le vouloir.

Les variables:

Code : Tout sélectionner

cls 
echo off

rem Mes varialbles de compréssion et déplacement.

rem A = repertoire source. chemin: F:\JEUX_VIDEOS\Steam\Backups
set A = "backup"

rem B = repertoire destination. chemin: I:\IMAGES ISO\JEUX_STEAM_IMAGE-ISO_FALCOMFR
set B = "jeux_steam_image_iso_falcomfr"

rem     reponse des varialbles 0 ou 1
set 0 = "Dossier vide aucune action necessaire"

set 1 = "compression et déplacement du ficheier %nomdufichier% en cour..."
 
il y a aussi une contrainte au quel je n'ai pas réfléchit pour le moment c'est celui du classement automatique
dans le dossier destination j'ai fait des sous dossier qui représente la catégorie de jeux (automobile, rpg, action, point et click...) chaque jeux devra aller dans ça catégorie.

Je pensais a fair un fichier txt auquel le bat fera appeler pour identifier la catégorie du jeux.


Le code suivant concerne le déplacement du fichier compresser.
Auteur de ce code Dragon__NOIR

Pour le déplacement:

Code : Tout sélectionner

@ECHO OFF

IF {%1}=={} GOTO ERROR
IF {%2}=={} GOTO ERROR
IF {%3}=={} GOTO M2

ECHO  MOVE %1 TO %2\%3

IF EXIST "%1" IF EXIST "%2" MOVE /Y "%1" "%2\%3" >NUL
GOTO EXIT

:M2
ECHO  MOVE %1 TO %2

IF EXIST "%1" MOVE /Y "%1" "%2" >NUL
GOTO EXIT


:ERROR
ECHO.
ECHO    ERROR SYNTAX
ECHO    ------------
ECHO.
ECHO    UTILISEZ LA SYNTAX SUIVANTE...
ECHO.
ECHO    MOVE.BAT [SOURCE] [DESTINATION]
ECHO    MOVE.BAT [SOURCE] [DESTINATION] [NOUVEAU NOM DE FICHIER DESTINATION]
ECHO.
ECHO.
ECHO    EX: MOVE.BAT H:\TEMP\*.* H:\DOC
ECHO    EX: MOVE.BAT H:\TEMP\FILES.DOC H:\DOC FICHIER.DOC
ECHO.
ECHO.
PAUSE

:EXIT

==========================================================================================

Question: Est-il possible de listé des sous-dossier et de faire un action si il y a un dossier présent ?
ou dois-je faire une liste de variable en faisant détecter le nom du dossier ?

ex: Dans mon dossier backup je trouve le dossier metal gears ground zero et le dossier metal gears phantom pain
alors je compresse les deux dossier avec 7za en .tar puis en .gzip












ps: J"ai encore pas mal de chose a demandé je compléterai un peu plus tard.
Modifié en dernier par falcom77 le 18 août 2016 11:34, modifié 1 fois.
pleaseTellMeWhoIam
Batcheur débutant
Messages : 10
Enregistré le : 05 nov. 2015 07:48

Re: Batch autocompression et autosave

Message par pleaseTellMeWhoIam »

Salut,
il ne faut pas mettre d'espace entre le nom d'une variable et le signe égal.

Code : Tout sélectionner

@echo off

set maVariable = maValeur

if defined maVariable (
echo %maVariable%
) else (
echo variable inexistante
)

echo.
pause
echo.
echo.

set maVariable=maValeur

if defined maVariable (
echo %maVariable%
) else (
echo variable inexistante
)

echo.
pause
exit 
Répondre