Plusieurs actions dans un else ?

holybeer Messages postés 383 Date d'inscription   Statut Membre Dernière intervention   -  
holybeer Messages postés 383 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Une question toute bête, mais j'dois réaliser un petit script en batch. Je teste si un fichier est présent. Dans le cas contraire, je veux afficher un message d'erreur simple, et ensuite je ferme le programme.

En gros, ça fait ça if exist "monrepertoire" ( echo fichier bien installé ) else ( echo pas installé; exit )

Est ce que c'est possible ? J'ai pas vraiment trouvé.. donc je demande.

Merci !
A voir également:

4 réponses

Help--ps2-- Messages postés 846 Date d'inscription   Statut Membre Dernière intervention   114
 
Hello

alors ça fait un pitit moment que j'ai pas touché le batch mais il me semble que ça serait plus comme ça :

if exist 'tonrepertoire' goto :OK else goto :PASBON

:OK echo fichier bien installé
:PAS BON echo pas installé

je suis pas très sur au niveau de la prez , mais de souvenir c'est comme ça que je faisait dans mes batchs pour patcher un fichier déjà présent par exemple
0
holybeer Messages postés 383 Date d'inscription   Statut Membre Dernière intervention   65
 
J'ai trouvé cette syntaxe sur batcher.fr " IF EXIST nomfichier. (del nomfichier.) ELSE echo nomfichier. introuvable "

Problème, je vérifie si ça existe. S oui, je rentre dans la suite du chemin et fais mes actions, si non, je sors et j'affiche un message d'erreur.

Le goto est une sorte de pointeur non ? Je ne peux pas mettre un echo directement ?

ah oui aussi dernière chose, je peux pas aligner plusieurs commandes à la suite dans le if ou le else ? Parce que je vois pas trop comment faire pour dire, je rentre dans le repertoire, je supprime les fichiers déjà présent, puis je copie les bons fichiers. J'suis une grosse daube en batch Windows. J'ai touché un le bash, mais bon ..
0
Help--ps2-- Messages postés 846 Date d'inscription   Statut Membre Dernière intervention   114
 
là tout de suite sincèrement j'ai pas le souvenir , ça fait trop longtemps ... quand je rentrerai du taf je t'enverrai le code que j'avais utilisé ( et qui marche très bien ) pour faire ce type de batch .
Oui le goto est un pointeur . Tu pourrais mettre des echo , c'est juste moins clair ( bon en même temps pour des batch si courts ça n'a peut être pas d'intérêt de faire un goto )
Et je comprends pas ta dernière question :(
0
holybeer Messages postés 383 Date d'inscription   Statut Membre Dernière intervention   65
 
Ce que je veux faire :

if exist "fichier.truc" ( action1 puis action2 puis action3 ) else (actionA puis actionB puis actionC)

Voilà. ;)
0
Danelectro Messages postés 1737 Date d'inscription   Statut Membre Dernière intervention   371
 
Salut, tu peux utiliser & pour concaténer deux commandes ;)

if exist fichier.truc action1 & action2 & action3
if not exist fichier.truc action4 & action5...

Autre possibilité :

if exist fichier.truc (
action1
action2
action3
) else (
action4
action5
...
)
0
holybeer Messages postés 383 Date d'inscription   Statut Membre Dernière intervention   65
 
ah ! Merci !

Je pensais que c'était un ; pour exécuter une suite de commande. ;)
0
holybeer Messages postés 383 Date d'inscription   Statut Membre Dernière intervention   65
 
Pas sur que ton autre possibilité marche. Le if et le else ne doivent pas être sur la même ligne pour fonctionner ?
0
Danelectro Messages postés 1737 Date d'inscription   Statut Membre Dernière intervention   371
 
Non j'ai toujours fait comme ça perso :)
0
holybeer Messages postés 383 Date d'inscription   Statut Membre Dernière intervention   65
 
ah ba écoute, j'vais essayer tout ça !
0
heyquem Messages postés 759 Date d'inscription   Statut Membre Dernière intervention   131
 
Si c'est si compliqué en batch, pourquoi ne pas chercher une manière productive de programmer ?

Quelqu'un qui veut faire ce que tu veux, il met 1 minute avec Python:


from os.path import isfile 

if isfile(chemin_de_fichier): 
    action A 
    action B 
    action C 
else: 
    action D 
    action E 
print 'Le chemin spécifié est incorrect'


en Python 2.x
0
holybeer Messages postés 383 Date d'inscription   Statut Membre Dernière intervention   65
 
Parce que c'est pour déployer sur des clients via GPO.
0
heyquem Messages postés 759 Date d'inscription   Statut Membre Dernière intervention   131
 
Merci.

Alors là je suis dépassé, mais je suis curieux.
Ton programme batch avec des if est-il destiné à être installé sur des postes clients pour tourner ensuite sur chacun des postes clients ? Ou bien est-il un programme qui se charge de transférer des caractéristiques de GPO vers des postes clients ?
0
holybeer Messages postés 383 Date d'inscription   Statut Membre Dernière intervention   65
 
Non. AD va lancer le script au démarrage. Le but de mon script était de vérifier si dans tel répertoire, j'ai le dictionnaire français ( avec Zimbra Desktop ). Si non, je copie les fichiers à partir d'un chemin réseau, vers le répertoire utilisateur. Si oui, je quitte tout simplement.
0
heyquem Messages postés 759 Date d'inscription   Statut Membre Dernière intervention   131
 
Puisqu'il s'agit de démarrage et de Zimbra Desktop, je conclus que le script doit tourner sur des postes clients. Merci

Ceci dit, le lancement d'un programme au démarrage n'est pas obligé d'être effectué par AD, un raccourci placé dans le dossier C:\Documents and Settings\Admin\Menu Démarrer\Programmes\Démarrage peut le faire aussi, non ?
Dans ce cas, on peut aussi envisager placer un script Python ou de n'importe quel autre langage qui fera ce que tu veux faire.
Dans ton cas, ce n'est pas possible de faire ainsi ?
0
holybeer Messages postés 383 Date d'inscription   Statut Membre Dernière intervention   65
 
" Ceci dit, le lancement d'un programme au démarrage n'est pas obligé d'être effectué par AD, un raccourci placé dans le dossier [..]"

J'ai oublié un détail. La GPO qui lance le script, et celle qui installe Zimbra Desktop sont différentes. Le script va se lancer à chaque démarrage, tandis que l'autre va n'installer qu'une seule fois le programme. Quand j'entends démarrage, c'est spécifique à AD. Tu peux initialiser un script soit au démarrage de la machine, ou soit à son extinction. Pas au sens menu démarrer. ;)

Qui plus est, pour lancer du python, j'ai besoin d'un client qui va compiler mon script. Il ne me semble pas que python est installé sur mes clients de un parce que ça ne leur sert strictement à rien, et de deux, ça me ferait une création supplémentaire de GPO. ;)
0