IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

icalcs ne fonctionne pas dans un if


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut icalcs ne fonctionne pas dans un if
    Bonjour,

    J'essai de mettre à jour les privileges sur les fichiers/rpertoires a partie de la fonction icalcs.

    j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo updating file permissions on ArcGIS server directories
    IF "%ALLinONEServer%" == "Y" (
    	icacls "%installation_path%\%ags_folder_name%\%ags_cache_folder_name%" /grant :r "%host_name%\ArcGISSOM":(OI)(CI)(M) "%host_name%\ArcGISSOC":(OI)(CI)(M) /t
    )
    Ca ne fonctionne pas avec le message d'erreur suivant :
    (CI)(M) was unexpected at this time.

    Cependant si je met le icalcs en dehors du if cela fonctionne correctement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo updating file permissions on ArcGIS server directories
    icacls "%installation_path%\%ags_folder_name%\%ags_cache_folder_name%" /grant :r "%host_name%\ArcGISSOM":(OI)(CI)(M) "%host_name%\ArcGISSOC":(OI)(CI)(M) /t
    Quelqu'un saurait pourquoi ca ne fonctionnerai pas dans un if.?

  2. #2
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Le if est délimité par ( et ), tu as des ( ) et dans ta commande, forcément il aime pas.

    En solution tu as au choix :
    - Mettre tout sur une seule ligne dans les ( ) du if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF "%ALLinONEServer%" == "Y" icacls ...
    - Utiliser un call comme je t'ai indiqué dans ton topic précédent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF "%ALLinONEServer%" == "Y" (
    	call :appel_icacls
    )

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    Salut,

    Merci, oui en fait j'y ai pensé juste après avoir poster la discussion.
    Et avec le GOTO ca fonctionne très bien, mais bon pour moi c'est du bidouillage.

    En fait je n'avais pas mis la commande a la même ligne que le if car dans mon vrai script je n'ai pas qu'une ligne.

    En tout cas ca fonctionne correctement maintenant.

    Encore merci beaucoups !! (avec ceci j'ai même appris le principe des GOTO je pense )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    echo updating file permissions on ArcGIS server directories
    IF "%ALLinONEServer%" == "Y" (
    	call :FilePermUpdate_ALLinONEServer
    ) ELSE (
    	IF "%IsSOMServer%" == "Y" (
    		call :FilePermUpdate_SOM
    	)
    	IF "%IsSOCServer%" == "Y" (
    		call :FilePermUpdate_SOC
    	)
    )
    :ContinueAfterFilePermUpdate
    
    rem Functions called by this script
    : FilePermUpdate_ALLinONEServer
    icacls "%installation_path%\%ags_folder_name%\%ags_cache_folder_name%" /grant :r "%host_name%\ArcGISSOM":(OI)(CI)(M) "%host_name%\ArcGISSOC":(OI)(CI)(M) /t
    icacls "%installation_path%\%ags_folder_name%\%ags_output_folder_name%" /grant :r "ArcGISSOM":(OI)(CI)(M) "ArcGISSOC":(OI)(CI)(M) /t
    icacls "%installation_path%\%ags_folder_name%\%ags_input_folder_name%" /grant :r "ArcGISSOM":(OI)(CI)(M) "ArcGISSOC":(OI)(CI)(M) /t
    icacls "%installation_path%\%ags_folder_name%\%ags_jobs_folder_name%" /grant :r "ArcGISSOM":(OI)(CI)(M) "ArcGISSOC":(OI)(CI)(M) /t
    icacls "%installation_path%\%ags_folder_name%\%ags_index_folder_name%" /grant :r "ArcGISSOM":(OI)(CI)(M) "ArcGISSOC":(OI)(CI)(M) /t
    icacls "%installation_path%\%ags_folder_name%\%ags_mobile_folder_name%" /grant :r "ArcGISSOM":(OI)(CI)(M) "ArcGISSOC":(OI)(CI)(M) /t
    icacls "%installation_path%\%logs_folder_name%" /grant :r "ArcGISSOM":(OI)(CI)(M) "ArcGISSOC":(OI)(CI)(M) /t
    icacls "%installation_path%\%data_folder_name%" /grant :r "ArcGISSOM":(OI)(CI)(M) "ArcGISSOC":(OI)(CI)(M) /t
    goto :ContinueAfterFilePermUpdate
    
    : FilePermUpdate_SOM
    icacls "%installation_path%\%ags_folder_name%\%ags_cache_folder_name%" /grant :r ArcGISSOM:(OI)(CI)(M) ArcGISSOC:(OI)(CI)(M) /t
    icacls "%installation_path%\%ags_folder_name%\%ags_output_folder_name%" /grant :r ArcGISSOM:(OI)(CI)(M) ArcGISSOC:(OI)(CI)(M) /t
    icacls "%installation_path%\%ags_folder_name%\%ags_input_folder_name%" /grant :r ArcGISSOM:(OI)(CI)(M) ArcGISSOC:(OI)(CI)(M) /t
    icacls "%installation_path%\%ags_folder_name%\%ags_jobs_folder_name%" /grant :r ArcGISSOM:(OI)(CI)(M) ArcGISSOC:(OI)(CI)(M) /t
    icacls "%installation_path%\%ags_folder_name%\%ags_index_folder_name%" /grant :r ArcGISSOM:(OI)(CI)(M) ArcGISSOC:(OI)(CI)(M) /t
    icacls "%installation_path%\%ags_folder_name%\%ags_mobile_folder_name%" /grant :r ArcGISSOM:(OI)(CI)(M) ArcGISSOC:(OI)(CI)(M) /t
    icacls "%installation_path%\%logs_folder_name%" /grant :r ArcGISSOM:(OI)(CI)(M) ArcGISSOC:(OI)(CI)(M) /t
    goto :ContinueAfterFilePermUpdate
    
    : FilePermUpdate_SOC
    icacls "%installation_path%\%data_folder_name%" /grant :r ArcGISSOM:(OI)(CI)(M) ArcGISSOC:(OI)(CI)(M) /t
    goto :ContinueAfterFilePermUpdate

  4. #4
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Les call et GOTO ne sont pas du bidouillage, voit cela comme des appels de fonctions, chose que tu ferais naturellement dans un autre language.

    Par contre tes GOTO me semblent dangereux voir erronés mais j'imagine que tu n'as pas mis tout ton script et qu'il y a autre chose apres ton label :ContinueAfterFilePermUpdate et que tu as un GOTO :EOF ou un exit avant ton rem Functions called by this script

    Dans tous les cas ton label :ContinueAfterFilePermUpdate n'est pas utile (voir erroné, il y a des chance qu'il execute deux fois la portion de code apres ce label), dans tes "fonctions" remplace GOTO :ContinueAfterFilePermUpdate par GOTO :EOF et cela suffit.
    Après un call, le script reprend tout seul ou il en était. Le GOTO :EOF permet de dire que ton call est terminé.

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/09/2006, 17h46
  2. [FTP] fopen qui ne fonctionne pas dans tous les contextes ..
    Par Christophe Charron dans le forum Langage
    Réponses: 6
    Dernier message: 15/06/2006, 10h25
  3. Réponses: 3
    Dernier message: 26/01/2006, 13h11
  4. La fonction CurrentDb() ne fonctionne pas dans une requête
    Par Sébastien Le Goyet dans le forum Access
    Réponses: 8
    Dernier message: 24/11/2005, 17h46
  5. Réponses: 1
    Dernier message: 27/10/2005, 21h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo