Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Encore du batch


CrackAMouet

Messages recommandés

Bonjour,

 

J'utilise différents scripts pour connecter/deconnecter un lecteur reseau et allumer/éteindre la machine concernée si necessaire.

 

Ayant plusieurs machines et faisant régulierement évoluer mes scripts j'ai crée un "update.cmd" chargé de copier tous mes fichiers afin de toujours avoir la derniere version en local.

 

@ECHO OFF
ECHO Vérification de la derniere version du script de connexion
dir |FIND "choice.exe"
IF NOT ERRORLEVEL 1 GOTO WOL
copy x:\script\choice.exe c:\script\choice.exe
:WOL
dir |FIND "wol.exe"
IF NOT ERRORLEVEL 1 GOTO WAI
copy x:\script\wol.exe c:\script\wol.exe
:WAI
dir |FIND "wait.exe"
IF NOT ERRORLEVEL 1 GOTO MAJ
copy x:\script\wait.exe c:\script\wait.exe
:MAJ
wait 1
ECHO Copie de Update.cmd
copy x:\script\update.cmd c:\script\update.cmd
wait 1
ECHO Copie de Reseau.cmd
copy x:\script\reseau.cmd c:\script\reseau.cmd
wait 1
ECHO Copie de Stop.cmd
copy x:\script\stop.cmd c:\script\stop.cmd
ECHO Copie de MP3.cmd
copy x:\script\MP3.cmd c:\script\MP3.cmd
ECHO Mise a jour terminee
WAIT 5

 

C'est à partir d'ici que commence la partie question ! :P

 

Plutot que de copier à chaque fois les fichiers update.cmd, reseau.cmd, stop.cmd et MP3.cmd je voudrai que mon script compare ces fichiers et ne les copie que s'ils ont été modifiés. J'imaginais de vérifier si leur dates étaient identiques, mais je ne vois pas trop comment faire :-(

 

Merci de votre aide par avance :-P

Lien vers le commentaire
Partager sur d’autres sites

je pense avoir une piste que j'ai pas cresé

 

la commande :

 

COMP

 

Compare le contenu de deux fichiers ou ensembles de fichiers.

COMP [donnée1] [donnée2] [/D] [/A] [/L] [/N=nombre] [/C] [/OFF [LINE]]

 donnée1    Spécifie endroit et noms des premiers fichiers à comparer.
 donnée2    Spécifie endroit et noms des deuxièmes fichiers à comparer.
 /D         Affiche les différences sous forme décimale.
 /A         Affiche les différences sous forme de caractères ASCII.
 /L         Affiche les numéros de ligne des diffèrences.
 /N=nombre  Compare seulement 'nombre' premières lignes dans chaque fichier.
 /C         Ignore la casse des lettres ASCII en comparant des fichiers.
 /OFF[LINE] Ne pas ignorer les fichiers dont l'attribut hors connexion a été réglé.
Comparaison d'ensembles de fichiers : utilisez des caractères génériques
pour donnée1 et donnée2.

Lien vers le commentaire
Partager sur d’autres sites

xcopy x:\script\*.* c:\script\*.* /d/y

en lieu et comme seule ligne du fichier update.cmd

429987[/snapback]

Bonne piste, je ne connaissais pas le commutateur /D de xcopy :P

 

Merci du tuyau

 

 

Ca va simplifier mon script qui ressemble à ca maintenant en utilisant FC

 

@ECHO OFF
ECHO Vérification de la derniere version du script de connexion
dir %windir%\system32 |FIND "choice.exe"
IF NOT ERRORLEVEL 1 GOTO WOL
copy x:\script\choice.exe %windir%\system32\choice.exe
:WOL
dir %windir%\system32 |FIND "wol.exe"
IF NOT ERRORLEVEL 1 GOTO WAI
copy x:\script\wol.exe %windir%\system32\wol.exe
:WAI
dir %windir%\system32 |FIND "wait.exe"
IF NOT ERRORLEVEL 1 GOTO UPD
copy x:\script\wait.exe %windir%\system32\wait.exe


:UPD
FC /B x:\script\update.cmd c:\script\update.cmd |FIND "aucune"
IF NOT ERRORLEVEL 1 GOTO NOUPD
copy x:\script\update.cmd c:\script\update.cmd
ECHO Mise a jour de Update.cmd effectuee
GOTO RES

:NOUPD
ECHO Mise a jour de update.cmd non necessaire
GOTO RES


:RES
FC /B x:\script\reseau.cmd c:\script\reseau.cmd |FIND "aucune"
IF NOT ERRORLEVEL 1 GOTO NORES
copy x:\script\reseau.cmd c:\script\reseau.cmd
ECHO Mise a jour de reseau.cmd effectuee
c:\script\reseau.cmd
GOTO STOP

:NORES
ECHO Mise a jour de reseau.cmd non necessaire
GOTO STOP


:STOP
FC /B x:\script\stop.cmd c:\script\stop.cmd |FIND "aucune"
IF NOT ERRORLEVEL 1 GOTO NOSTOP
copy x:\script\stop.cmd c:\script\stop.cmd
ECHO Mise a jour de stop.cmd effectuee
GOTO MP3

:NOSTOP
ECHO Mise a jour de stop.cmd non necessaire
GOTO MP3


:MP3
FC /B x:\script\MP3.cmd c:\script\MP3.cmd |FIND "aucune"
IF NOT ERRORLEVEL 1 GOTO NOMP3
copy x:\script\MP3.cmd c:\script\MP3.cmd
ECHO Mise a jour de MP3.cmd effectuee
GOTO END

:NOMP3
ECHO Mise a jour de MP3.cmd non necessaire
GOTO END

:END
ECHO Mise a jour terminee
WAIT 5

Lien vers le commentaire
Partager sur d’autres sites

B'Soir,

 

joli batch ! Désolé pas le temps de commenter ... Sauf : passer des variables raccourcit les routines.

 

Pour connaître tous les commutateurs de chaque commande entrer au clavier le nom de la comande suivi de "/?"

Lien vers le commentaire
Partager sur d’autres sites

B'Jour,

 

bien, bien, simple et clair.

 

Euh, tu t'adresses surtout aux newbies. Donc j'ajouterais une petit intro de quques lignes pour expliquer ce qu'est le DOS (Disk Operating System) et son histoire (dernière version complète 6.22 (FAT 16), les "DOS-Windows" : W95 -> 7.0, W98 -> 7.1 (FAT32) , WME -> 8. et l'émulation DOS (par cmd ...) des autres (peut-être aussi les clones style DR-DOS (lecture NTFS) ?

 

Tiens voilà un des cadors du DOS qui sévit aussi sur THE forum computing.net : http://www.batchfiles.co.nr/

Lien vers le commentaire
Partager sur d’autres sites

:-( Heureusement que Gérard / IPL_001 ("Frenchie" sur computing.net) n'est pas dans le coin : sinon vous auriez droit aux GNA GNA (radotages Elzeimer) des anciens combattants ... :P
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...