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 :

Interpréter une erreur net use [Batch]


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Interpréter une erreur net use
    Bonjour,

    dans mon batch je souhaite me connecter à plusieurs UC pour récupérer des fichiers. Je me connecte sur les machines avec la simple commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    net use chemin user password
    Quand je n'arrive pas à joindre le PC, j'ai le message suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System error 53 has occurred.
    
    The network path was not found.
    J'aimerais interpréter cette erreur, par exemple pour faire un echo "pas connecté".
    J'ai essayé errorlevel mais en toute logique ca ne marche pas (il renvoie toujours 0).

    Mes connaissances sont assez limitées c'est pourquoi je requière les votres !
    Merci à ceux qui prendront le temps. :

  2. #2
    Membre émérite 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 : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Tu es sur que tu as testé correctement %ERRORLEVEL% ?

    J'ai fait un test avec un nom réseau bidon, j'obtient une erreur 67 "Nom de reseau introuvable" et mon ERRORLEVEL est à 2.


    L'autre solution est de parser le retour du net use à la recherche du terme error par exemple (regarde la commande findstr).
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Drizzt [Drone38] Voir le message
    Tu es sur que tu as testé correctement %ERRORLEVEL% ?
    Il faut croire que non ! J'ai re-testé ce matin et j'ai aussi ERRORLEVEL=2 quand il ne se connecte pas...
    Pourtant j'ai pas fumé hier !

    Merci Drizzt !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Points : 91
    Points
    91
    Par défaut
    Bonjour
    je me lance dans les batch

    j’essaie d’exécuter ceci sous windows 8
    je n'arrive pas a récupérer l'erreur 85

    ou est mon erreur :


    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
    echo off
    cls
    echo on
    echo %USERNAME%
    
    net use s: \\192.16x.xxx.xxx\TestSauve
    
    
     
     if %ERRORLEVEL% 85 goto err_85
     
     
     :err_85
     echo "lecteur deja utilisé"
     pause
    merci bien
    Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Points : 91
    Points
    91
    Par défaut
    essayé ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    net use s: \\192.16x.xxx.xxx\TestSauve
    
     IF %ERRORLEVEL%==85 (echo lecteur deja utilisé)
    pb vaut 2 or le lecteur s: est déjà utilisé

    ou est l'erreur?

    merci
    Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3

  6. #6
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Il ne faut pas mélanger la valeur de l'errolevel (%errorlevel%) et le
    code erreur de "net use" qui ne sont absolument pas dépendant.

    Avec l'errorlevel tu va pouvoir savoir si il y a eu une erreur (errorlevel superieur à 0)
    mais tu ne va pas savoir quel erreur.

    J'ai écrit ici un script qui récuperere le code erreur du net use et affiche la cause de l'erreur.

    http://windows.developpez.com/telech...-CODE-RESOLVER

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Points : 91
    Points
    91
    Par défaut
    Bonjour,
    tout d'abord un grand merci a toi pour ton aide
    Dessolé de la réponse tardive , j'ai eu pas mal de pb.....

    Voici ce que j'essaie de faire j'ai un disque dur externe sur ma Freebox Revolution v6 je veux lancer un script de sauvegarde en fin de session.

    Le script se déroule bien ,sauf que dans mes tests si je copie 2 fichiers et que par la suite je relance le script ,ceux ci ne devraient pas être recopiés une seconde fois

    J'ai synchronise le temps de mon Pc (temps internet) et ma box.

    malgré ceux , il y a toujours ce pb.

    comment résoudre ceci ?


    Je me suis inspire aussi de ceci : http://www.batcher.fr/exemples.php#save
    et cela : http://windows.developpez.com/cours/...e/?page=page_9


    C'est un script qui doit tourner sur W8 et Wxp
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    
    ::://Definition de la commaNDE NET USE qui va être testé ceci ok
    
    echo off
    cls
    ::runas administrateur
    
    setlocal enabledelayedexpansion
    :: Variable globales
    :: non de lecteur reseau
    set $Drive=X: 
    
    :: partage sur le reseau
    set $Serveur=\\xxx.xxx.xxx\Datas\TestSauve\%USERNAME% 
    
    set $NetComm=net use %$Drive% %$Serveur%
    
    ::// emplacement de travail a sauvegarder
    set $Source=D:\TRAVAIL\%USERNAME%\TestSauve
    
    ::// OputLogFile log de sortie
    set OuptuLogFile=TravailLog_%USERNAME%.txt
    
    echo Traitement de : %$NetComm%
    
    
    
    ::pause
    
        %$NetComm% 2>%temp%\netlog.txt
    
    ::pause
    	set $c=1
        for /f "delims=" %%a in ('type %temp%\netlog.txt') do (if !$c! equ 1 set $le=%%a
        set /a $c+=1)
    	
    	:::echo contenu: %$le%
    	::: on decoupe le message d'erreur et on extrait a partir du 17 caractere les 2 suivants
    	set $Error_code_NetUse=%$le:~17,2% 
        
    	
    	:::echo error level %ERRORLEVEL%
    	
    	::pause
    	
    	::://commande passee avec succees
    	if %ERRORLEVEL%==0 goto Sauve
    	:::// lecteur deja connecté
    	if %$Error_code_NetUse%==85 goto Error_code_NetUse_85
    	:::// lecteur debranche physqiquement
    	if %$Error_code_NetUse%==53 goto Error_code_NetUse_53
    	exit
    	
    	:Sauve
    	echo SAUVEGARDE de %$Source% sur (%$Drive:~0,2%)%$Serveur% 	
    	echo %OuptuLogFile%
    	
    	del %OuptuLogFile%
    	
            ::: force synchro
    	:::net time \\xxx.xxx.xxx /set /yes
    	
        xcopy %$Source% %$Drive% /D /E /C /R /H /I /K /Y >>%OuptuLogFile%
    	::// %%f siginifie ici fichier
    	::// affichage de s fichier copiés
    	@FOR /f "delims=" %%f in (%OuptuLogFile%) do (
    	@echo %%f copie sur %$Drive%
    	
    	)
    	
    	echo Fin de sauvegarde 
    	pause
    	goto END_SCRIPT
    	
    	:Error_code_NetUse_85
    	echo reultat erreur =%$Error_code_NetUse%
    	::// le lecteur est deja connecte je lance la sauvegarde 
    	
    	:://pêrmet de relancer le script en cours de session
    	
    	::://lecteur deja connecte on peut lancer la sauvegarde
    	:://goto Sauve
    	:://echo Chemin re
    	goto END_SCRIPT
    	
    		
    	:Error_code_NetUse_53
    	cls
    	echo reultat erreur =%$Error_code_NetUse%
    	
    	echo ATTENTION : Le disque dur de sauvegarde n'est pas allume !
    	echo Branchez le , attendre 15 secondes et relancer ce script
    	echo Merci !
    	pause
    	exit
    	:://goto END_SCRIPT
    	
    	
    	:END_SCRIPT
    	
    	NET USE %$Drive% /delete
    	exit
    
    	
    endlocal

    merci
    Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Integration] Conseil pour interpréter une erreur
    Par elmarco06 dans le forum Spring
    Réponses: 0
    Dernier message: 22/07/2010, 13h52
  2. Réponses: 5
    Dernier message: 04/01/2008, 09h55
  3. [VB.Net] Pourquoi ai-je une erreur à l'exécution d'une requête ?
    Par zooffy dans le forum Accès aux données
    Réponses: 3
    Dernier message: 25/06/2006, 10h35
  4. [ADO.Net][Access] Pourquoi ai-je une erreur lors de l'Update ?
    Par nazimb dans le forum Accès aux données
    Réponses: 1
    Dernier message: 15/05/2006, 09h37
  5. [VB.NET] intercepter une erreur de DTS
    Par HULK dans le forum Windows Forms
    Réponses: 3
    Dernier message: 04/04/2006, 08h49

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