Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1508 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] selection d'une partie de chaine de caractère

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Batch] selection d'une partie de chaine de caractère

n°2231669
krait820
Posté le 24-06-2014 à 11:30:32  profilanswer
 

Bonjour,
 
Je voudrais sortir un fichier txt qui contient le nom de l'imprimante par défaut de l'utilisateur. J'y suis donc arriver mais le problème que je n'arrive pas à résoudre est que j'aimerais changer une partie de la chaîne de caractère avant que le fichier txt soit créé pour être utilisé sur un script de démarrage de session (que j'ai également)pour utiliser le fichier pour changer l'imprimante par défaut sur un parc informatique (j'ai penser le faire avec l'AD mais les imprimantes ne dépendent pas des groupes d'utilisateurs.  
 
Je m'explique:
 

Citation :

@echo off
Rem récupère la clef de registre contenant l'imprimante par defaut et supprime toutes les options à "," derrière
for /F "eol=, tokens=1,2,3,4 delims=, " %%i in ('REG QUERY "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows" /s^|find "winspool"') do set TEST=%%i
 
Rem créer un variable test contenant ce que renvoi la fonction for au dessus
set TEST=%TEST%
 
Rem Ecrit la variable dans le fichier txt
echo %TEST%>P:\ImpDefaut.txt
 
Rem Récupère le nom de l'imprimante en 4 variables et la met dans une seule
FOR /f "tokens=1,2,3,4,5,6" %%i in ('find /i "REG_SZ" "P:\ImpDefaut.txt"') do set IMP=%%k %%l %%m %%n


 
Cette partie du code m'extrait bien l'imprimante sous la forme \\SRV1\nom_imprimante et j'aimerais ne pas avoir en sortie le serveur mais juste nom_imprimante
 
Quelqu'un aurais t'il une astuce pour cela ?  
Merci d'avance.


Message édité par krait820 le 24-06-2014 à 15:30:46
mood
Publicité
Posté le 24-06-2014 à 11:30:32  profilanswer
 

n°2231753
olivthill
Posté le 25-06-2014 à 07:12:33  profilanswer
 

Voici un petit programme batch qui découpe une chaine en fonction des antislashs (barre oblique inversée) :

set IMP="\\SRV1\nom_imprimante"
for /f "tokens=1,2,3 delims=\\ " %%a in ("%IMP%" ) do set un=%%a&set serveur=%%b&set imprimante=%%c
echo.un: %un%
echo.Serveur  : %serveur%
echo.Imprimante : %imprimante%


Comme il n'y a rien entre les deux premiers antislashs, la première variable est vide.
La seconde affiche le nom du serveur.
La troisième, le nom de l'imprimante.

n°2231755
krait820
Posté le 25-06-2014 à 07:52:42  profilanswer
 

Merci pour la réponse, j'ai finalement trouver une autre solution en ne sortant que le nom de l'imprimante sur le fichier texte avec ce code.
 

Citation :

@echo off
Rem récupère la clef dde registre contenant l'imprimante par defaut et supprime toutes les options à "," derrière
for /F "eol=, tokens=1,2,3,4 delims=," %%i in ('REG QUERY "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows" /s^|find "winspool"') do set TEST=%%i
Rem créer un variable test contenant ce que renvoi la fonction for au dessus
set TEST=%TEST%
Rem Ecrit la varaible dans le fichier txt
echo %TEST%>C:\ImpDefaut.txt
Rem Récupère le nom de l'imprimante en 4 variables et la met dans une seule
FOR /f "tokens=1,2,3,4,5,6" %%i in ('find /i "REG_SZ" "C:\ImpDefaut.txt"') do set IMP=%%k %%l %%m %%n
 
::récupère le dernier élément du path imprimante
 
for %%a in (%imp%) do set $imp=%%~na
 
Rem Ecrit la variable IMP dans le fichier txt
echo %$IMP%>C:\ImpDefaut.txt


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] selection d'une partie de chaine de caractère

 

Sujets relatifs
SVG - Faire un scale mais préserver une partie du polygonechangement de version de visual studio
[BATCH] Génerer un fichier texte et écrire dedans [...]Batch recup nombres d'un .txt dans variables.
correction de script batchExécuter une macro au changement du contenu d'une cellule sous excel
SCRIPT, detecter lettre hdd externe en batchRécupérer variable colonne tableau Batch
Batch création automatique dossier (xcopy)Mettre du batch en vbs
Plus de sujets relatifs à : [Batch] selection d'une partie de chaine de caractère


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR