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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Supprimer les " d'un string [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BATCH] Supprimer les " d'un string [résolu]

n°1551060
armyman
Posté le 28-04-2007 à 22:37:58  profilanswer
 

J'ai un petit problème :
 
Je fais ca pour extraire l'ID d'un processus :

Code :
  1. FOR /F "TOKENS=2 DELIMS=," %%R IN ('tasklist /fi "windowtitle eq test" /fo csv /nh') DO SET pid=%%R

Si je fais ECHO %pid% j'obtient "1234" avec les guillemets. Or je voudrais supprimer ces guillemets pour pouvoir utiliser cette valeur dans TASKKILL afin de fermer ce PID.
 
Comment faire? Il me semble avoir lu un truc là dessus (et ca avais l'air très simple), mais pas moyen de remettre la main dessus :s
 
Si je fais ECHO %pid:~1,4% ca m'enlève les guillemets mais ca ne peut pas marche si le processus est 123 ou 12345 (on sait jamais lol). Ya moyen de vérifier le nombre de caractère?
 
Sinon, vous n'auriez pas une methode pour savoir si un processus est lancé ou pas ? Ca serais cool :)


Message édité par armyman le 29-04-2007 à 10:02:15
mood
Publicité
Posté le 28-04-2007 à 22:37:58  profilanswer
 

n°1551111
wackevat
Posté le 29-04-2007 à 04:12:05  profilanswer
 

for ... %%r in (...) do call :setPid %%r
goto next
 
:setPid
set pid=%~1
goto :eof
 
:next
 
Par contre, taskkill fonctionne avec les guillemets ;)

n°1551120
armyman
Posté le 29-04-2007 à 08:11:15  profilanswer
 

"Par contre, taskkill fonctionne avec les guillemets"
 
Hmm, non ca marche pas pour moi :o
Par exemple ca ca marche :

Code :
  1. taskkill /FI "PID EQ 1234"

et ca ca marche pas :

Code :
  1. taskkill /FI "PID EQ "1234""

Ca me met pas d'erreur mais Information aucun processus blabla
 
Mais je crois que j'ai trouvé une solution, avec le nom de la fenêtre, et ca a l'air de fonctionner. En gros:

Code :
  1. SET Nom=NomDeLaFenetreAFermer
  2. SET Infos=TASKLIST /FI "WINDOWTITLE EQ %Nom%" /FO CSV /NH /V
  3. FOR /F "TOKENS=9 DELIMS=," %%R IN ('%Infos%') DO SET NomTrouvé=%%R
  4. SET NomTrouvé=%NomTrouvé:~1,21%
  5. IF "%NomTrouvé%" NEQ "%Nom%" (GOTO:ERREUR) ELSE GOTO:FERMER
  6. :ERREUR
  7.     ECHO %Nom% n est pas lancé.
  8.     PAUSE > NUL
  9. :FERMER
  10.     TASKKILL /FI "WINDOWTITLE EQ %Nom%" > NUL
  11.     ECHO %Nom% a été fermé
  12.     PAUSE > NUL


En tout cas j'ai essayé ton astuce, ca a l'air de marche merci je vais voir si je dois m'en servir ou non. ^^


Message édité par armyman le 29-04-2007 à 08:17:35
n°1551121
wackevat
Posté le 29-04-2007 à 08:52:53  profilanswer
 

Pourquoi  
taskkill /pid "1234"
ne te conviendrait-il pas ?

n°1551124
webding
Posté le 29-04-2007 à 09:08:26  profilanswer
 

Ceci supprime les guillemets:

Code :
  1. FOR /F "TOKENS=2 DELIMS=," %%R IN ('tasklist /fi "windowtitle eq test" /fo csv /nh') DO SET pid=%%R
  2. set pid=%pid:"=%

n°1551129
armyman
Posté le 29-04-2007 à 09:57:28  profilanswer
 

Ok merci a vous deux :) j'ai l'embarras du choix maintenant lol
 
J'avais pas vu que /pid ca existait :pt1cable:

n°1573076
$@m
Posté le 11-06-2007 à 10:51:40  profilanswer
 

ou ca ECHO %pid:~1,-1% ... je crois...


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

  [BATCH] Supprimer les " d'un string [résolu]

 

Sujets relatifs
[resolu]Incrémenter une Plage de cellule avec range ?[resolu] Mise à jour si modification d'une feuille
Commande ftp dans un batch[BATCH] Améliorer ce bout de code? [résolu]
un noob cherche à centrer une image [résolu][résolu] Probleme pour connaitre la taille d'une chaine de caracteres
lister + supprimer repertoire[Résolu]Boucle et lecture de fichiers...
PHP et Active Directory (fonction ldap_search) [résolu] 
Plus de sujets relatifs à : [BATCH] Supprimer les " d'un string [résolu]


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