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 recherche imprimante


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Batch recherche imprimante
    Bonjour je recherche la façon de faire dans un batch pour chercher une imprimante installée...si elle est présente le batch ne s'exécute pas autrement on poursuit...

    Pour le moment j'ai cette référence...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    reg query ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices" ^|find /I "TOSHIBA e-STUDIO555Series PS3 Photocopieur"') Do (
      If "%%I"=="TOSHIBA e-STUDIO555Series PS3 Photocopieur" (
         GOTO EOF
      ) ELSE (
         net use P: \\10.10.10.46\partage\PS555 /persistent:No
    xcopy /Q /h /Y P:\*.* c:\temp\
    c:\temp\PrintDBGSP.vbs
    c:\temp\SUBINACL /verbose=1 /printer "TOSHIBA e-STUDIO555Series PS3 Photocopieur" /grant="Tout le monde"=F
    net use P: /delete /y
    del c:\temp /F /Q
      )
    )
    Sans grand effet

    Des indices sur la bonne façon

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Une nouvelle méthode avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices" |find /I "TOSHIBA e-STUDIO555Series PS3 Photocopieur" >nul && (
    net use P: \\10.10.10.46\partage\PS555 /persistent:No
    xcopy /Q /h /Y P:\*.* c:\temp\
    c:\temp\PrintDBGSP.vbs
    c:\temp\SUBINACL /verbose=1 /printer "TOSHIBA e-STUDIO555Series PS3 Photocopieur" /grant="Tout le monde"=F
    net use P: /delete /y
    del c:\temp /F /Q
    )
    Mais le query ne se fait pas sur le reg query/find....des idées?

    Merci

  3. #3
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Salut,

    Plutôt que de filtrer avec find mieux vaut interroger directement la valeur puisque tu la connais, et en fonction de si elle existe ou pas, reg te renverra le code de sortie adéquat.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci pour les infos...

    J'arrive a ce code maintenant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" /v "TOSHIBA e-STUDIO555Series PS3 Photocopieur"
    if errorlevel 1 goto install 
    goto end 
    :install 
    echo install stuff 
    exit
    :end
    echo closing
    selon regedit

    j'ai la clé

    Printer et ensuite en dessous
    TOSHIBA e-STUDIO555Series PS3 Photocopieur
    TOSHIBA e-STUDIO555Series PS3 2ieme

    peut importe si la clé est là ou non le batch poursuit et affiche le echo :install stuff

    de ce que je vois mon erreur se situe sur le reg query?

  5. #5
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    En effet, tu n'utilises pas reg correctement, ni le test errorlevel, cela dit, il faut bien faire attention à ne pas confondre clef, valeur et donnée (voir l'aide en ligne des outils et instructions associés (reg /? if /?) pour plus de détails et les tutoriels/cours dvp)

    Sinon, je viens de regarder vite fait... et apparemment la lecture via le registre ne te garantit pas la disponibilité d'une imprimante, je t'ai donc ajouté un test supplémentaire, mais dans l'absolu il est préférable de te tourner vers vbs et wmi, beaucoup plus puissants pour ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sc query spooler | findstr /i "state.*running">nul
    if errorlevel 1 title Pas de serveur d'impression...& pause& goto :eof
    reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices" /v "TOSHIBA e-STUDIO555Series PS3 Photocopieur">nul
    if errorlevel 1 title Pas d'imprimante...& pause& goto :eof
    ::suite du code...

Discussions similaires

  1. [batch] recherche de fichier sur different lecteurs
    Par dmichel dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 15/12/2008, 12h11
  2. [BATCH] Recherche dans sous-dossiers
    Par tonf dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 13/08/2008, 15h17
  3. [Batch] recherche et ecriture
    Par Darkarcadius dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 26/10/2007, 22h07
  4. [BATCH] Recherche et copy de répertoire
    Par nico960 dans le forum Windows
    Réponses: 1
    Dernier message: 30/08/2007, 10h40
  5. [batch] recherche avec "findstr"
    Par cbv38 dans le forum Windows
    Réponses: 5
    Dernier message: 21/07/2006, 09h59

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