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 :

Condition sur un caractère dans une chaîne de caractère


Sujet :

Scripts/Batch

  1. #1
    Membre régulier
    Homme Profil pro
    PLM IT Consultant
    Inscrit en
    Novembre 2003
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : PLM IT Consultant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 202
    Points : 86
    Points
    86
    Par défaut Condition sur un caractère dans une chaîne de caractère
    Bonjour,

    j'ai un script qui permet de connecter un lecteur réseau mais l'utilisateur peut être différent suivant le domaine sur lequel il est connecté.
    J'aimerais effectuer une condition sur mon script qui me "scanne" ma variable et qui si il y a un point dans la chaîne de caractère inséré, il se connecte au lecteur X et qui si il n'y a pas de point dans la variable, il se connecte au lecteur Y.

    Ci-dessous mon script actuel qui fonctionne mais je n'ai pas trouvé le moyen d'effectuer cette condition.
    En fait, si il y a un . dans la variable %1, le net use dans être Z:\ \\fileserver1\data /user:domaine1\%1
    Si il n'y a pas de point, Z:\ \\fileserver2\data /user:domaine2\%1

    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
    ECHO Connexion au serveur... Veuillez patienter...
    ECHO.
    
    REM Lancement de la commande NET USE avec la variable contenant le pseudo
    REM paramètres depuis le VBS
    NET USE Z: \\fileserver\Data /user:domaine\%1
    
    
    REM Test pour savoir si la commande NET USE a réussie
    IF %ERRORLEVEL% == 2 (
    	CLS	REM Vidage de l'écran
    	ECHO La connexion au serveur a echouee.
    	ECHO.
    	ECHO La cause la plus probale est que vos identifiants soient incorrects ou que vous n'ayez tout simplement pas les droits.
    	ECHO.
    ) ELSE (
    	CLS
    	ECHO Connexion reussie.
    	ECHO.
    	ECHO Vous etes maintenant connecte au domaine en tant que %1
    	ECHO.
    )
    
    PAUSE
    Merci de votre aide.
    "Qu'est-ce qui est venu le premier à la vie? Le compilateur ou le code source"

  2. #2
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Bonjour,
    Vous pouvez essayé avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    set truc=truc.machin
    set point=.
    echo %truc%%2 | findstr /C:"%point%" 1>nul
    
    if errorlevel 1 (
      echo %point% pas trouve dans %truc%
    ) ELSE (
      echo %point% trouve dans %truc%
    )
    pause
    %point% = caractère à chercher
    %truc% = variable dans laquelle chercher le caractère désiré

    En espérant vous avoir aidé ^^
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  3. #3
    Membre régulier
    Homme Profil pro
    PLM IT Consultant
    Inscrit en
    Novembre 2003
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : PLM IT Consultant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 202
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par devilsnake88 Voir le message
    Bonjour,
    Vous pouvez essayé avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    set truc=truc.machin
    set point=.
    echo %truc%%2 | findstr /C:"%point%" 1>nul
    
    if errorlevel 1 (
      echo %point% pas trouve dans %truc%
    ) ELSE (
      echo %point% trouve dans %truc%
    )
    pause
    %point% = caractère à chercher
    %truc% = variable dans laquelle chercher le caractère désiré

    En espérant vous avoir aidé ^^
    Alors ça me paraît bien mais en copiant/collant ces quelques lignes de code, il m'indique le message suivant:

    FINDSTR: Argument manquant après /C

    J'ai cherché sur quelques sites mais je n'ai rien trouvé de bien probant à ma solution. Avez-vous une petite idée?
    "Qu'est-ce qui est venu le premier à la vie? Le compilateur ou le code source"

  4. #4
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Ah oui désolé erreur de clavier lors de mon copier/coller ^^
    il suffit de supprimer le "1" avant ">nul" comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    set truc=truc.machin
    set point=.
    echo %truc%%2 | findstr /C:"%point%">nul
    
    if errorlevel 1 (
      echo %point% pas trouve dans %truc%
    ) ELSE (
      echo %point% trouve dans %truc%
    )
    pause
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

Discussions similaires

  1. [MySQL] Remplacer une chaîne de caractères dans une base de données
    Par Furius dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 27/11/2013, 21h06
  2. Rechercher une chaîne de caractère dans une série de fichier
    Par Edoxituz dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/02/2006, 12h51
  3. Réponses: 7
    Dernier message: 14/12/2005, 09h53
  4. Remplacer une chaîne de caractères dans une base
    Par Furius dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/10/2005, 23h03
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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