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 :

Batch : for each volume of an unmounted network Drive


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Post-Production Audiovisuelle
    Inscrit en
    Avril 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Post-Production Audiovisuelle
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2019
    Messages : 3
    Par défaut Batch : for each volume of an unmounted network Drive
    Bonjour,

    Je cherche à exécuter une ligne de commande qui serait l’équivalent fonctionnel de :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    for /D %G in ("//ServerName/*") do echo %G
    Le but final est d’exécuter des commandes plus complexes que "echo %G", mais je n'ai pas de problèmes à ce niveau.
    Là où j'ai un souci, c'est pour lister tous les volumes d'un serveur distant, et même si possible uniquement certains volumes avec : ("\\ServerName\*_PROJET").

    Je crois savoir qu'il y a moyen d'utiliser des "tokens" de commandes de listing (comme net use) que l'on exécute à l’intérieur des parenthèses mais je n'ai pas les connaissances nécessaires pour faire cela.
    Si quelqu'un sait comment faire, un peu d'aide ne serait pas de refus

    Merci d'avance !

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR /F %a IN ('dir /AD/B "\\ServerName"') DO @echo %a

    Double les % pour l'utiliser dans un script de commande

  3. #3
    Candidat au Club
    Homme Profil pro
    Post-Production Audiovisuelle
    Inscrit en
    Avril 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Post-Production Audiovisuelle
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2019
    Messages : 3
    Par défaut
    Bonjour,

    Merci pour la réponse rapide, mais malheureusement cela ne fonctionne pas
    Je reçoit un message comme quoi la syntaxe n'est pas valide.

    Pour être sûr que l'on se comprend bien : "\\ServerName\" n'est pas un volume.
    La ligne de commande fonctionne si je l'écrit avec "\\ServerName\VolumeName" à la place. Je ne sais pas sir "dir" peut lister des volumes à partir d'un disque distant.
    Une idée ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Flute alors, désolé je n'avais pas vu la faiblesse du dir
    Essaie ceci (sinon tu a aussi net view)

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    FOR /F "tokens=*" %%a IN ('wmic /NODE:"ServerName" PATH Win32_share get Name 2^>nul^|more +1^|findstr /r /c:"."') DO echo \\ServerName\%%~a
    pause

  5. #5
    Candidat au Club
    Homme Profil pro
    Post-Production Audiovisuelle
    Inscrit en
    Avril 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Post-Production Audiovisuelle
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2019
    Messages : 3
    Par défaut
    Bonjour,

    Après quelques tests, je reçois l'erreur 53 lorsque j'essaye d'obtenir des infos via wmic ou net use, ce qui fait que la ligne de code envoyé précédemment ne fonctionne pas.
    Le problème est que je ne peux pas trop faire de modifications sur le serveur en question.
    Y a t'il un autre moyen d'atteindre le serveur, qui ne déclencherai pas cette erreur ? Je peux faire une batterie de tests pour identifier exactement quel en est la source mais je ne sais pas lesquels exécuter.
    Si quelqu'un peut m'éclairer là dessus, je lui en serai reconnaissant.

    Merci d'avance

    Bonne journée

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Ce n'est pas de gaieté de coeur que j'utilise net view mais bon...

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
     
    set srv=ServerName
    FOR /F "tokens=*" %%a IN ('net view "\\%srv%" 2^>nul ^| MORE +7 ^| FIND /v "La commande s" ^| FINDSTR /r /c:"."') DO (
    	set var=%%~a
    	set var=!var:~,16!
    	for /l %%b in (1,1,16) do if "!var:~-1!"==" " set var=!var:~0,-1!
    	if not "!var!"=="" echo \\%srv%\!var!
    )
     
    pause

    Si le partage fait plus de 16 caractère tu aura des problèmes pour le récupérer
    La faiblesse du traitement de chaine de caractères

Discussions similaires

  1. xsl:for-each avec un parametre pour select
    Par arnog dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 26/08/2008, 13h09
  2. fonction for each key .......
    Par trialrofr dans le forum ASP
    Réponses: 13
    Dernier message: 10/01/2005, 14h29
  3. apply-templates et for-each
    Par d'Oursse dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 14/05/2004, 08h38
  4. utilisation de for each
    Par billoum dans le forum ASP
    Réponses: 5
    Dernier message: 19/03/2004, 15h30
  5. [VB6] For Each ... In ...
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/02/2003, 12h56

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