[MS-DOS] Lister les processus selon le path

Fermé
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 - 4 mars 2011 à 13:34
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 - 25 mars 2011 à 15:23
Bonjour,

J'ai deux mêmes exécutables présents dans deux répertoires différents.

J'aimerais lister les ID des processus liés à l'exécutable d'un des deux répertoires en ligne de commande.

Avec l'exécutable notepad++.exe, j'ai essayé la commande suivante:
wmic process where (ExecutablePath="C:\Program Files\Répertoire1\Notepad++\notepad++.exe") get processid

J'obtiens l'erreur suivante:
Node - Hostname
ERROR:
Code = 0x80041017
Description = Invalid query
Facility = WMI

En essayant selon le nom de l'exécutable, cela fonctionne bien mais me donne tous les processus liés aux deux répertoires:

wmic process where (name="notepad++.exe") get processid

Quelqu'un a une idée ? Est-ce la syntaxe ? Ai-je oublié quelque chose ? Connaissez-vous une autre commande permettant de faire cela ?

Badside.

7 réponses

boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 80
4 mars 2011 à 14:00
j'ai trouvé là bas : https://isc.sans.edu/diary/The+Grammar+of+WMIC/2376

A priori dans ton cas c'est un problème lié au séparateur de fichier car les lignes suivantes fonctionnent :
C:\>wmic process where (executablepath like "%system32%") get Comm
andLine, ProcessId
C:\>wmic process where (executablepath like "C%Windows%System32%")
 get CommandLine, ProcessId
C:\>wmic process where (executablepath like "C:\\Windows\\System32
%") get CommandLine, ProcessId
1
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 4
Modifié par badside le 4/03/2011 à 16:34
En effet, nickel, ça fonctionne avec des \\

Un grand merci à toi boly38 !
0
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 4
4 mars 2011 à 16:34
Autre question :
Quand je fais cette commande, wmic me renvoit la liste des PID mais il termine toujours par un "echo is off". Comment faire pour qu'il ne le renvoit pas ?

J'ai essayé:
set deploypath=C:\\Program Files\\Windows NT\\Accessories 

for /F %%i IN ('wmic process where (name="Wordpad.exe" and ExecutablePath="%deploypath%\\Wordpad.exe") get processid | more +1') do ( 
  if "%%i" neq "" echo %%i 
) 

Mais cela ne fonctionne pas ...

C'est embêtant car si je veux tuer ces processus,
taskkill /PID 
tout court me renvoit une erreur.

Une idée ?
0
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 4
8 mars 2011 à 08:23
Up
0
boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 80
8 mars 2011 à 09:10
je dirai que "echo is off" correspond à un %%i qui ne contient à que des caractères blanc (ou retour à la ligne); je suis pour tenter de rajouter les guillemets avec un echo "#%%i#" pour voir ce qu'il affiche entre les dièses.. peut être un retour ligne effectivement.. je n'ai pas d'autre idée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 4
Modifié par badside le 16/03/2011 à 15:06
Ok merci !

Comment reprendre ce caractère "retour à la ligne" dans mon if ?

if %%i equ \r\n

if %%i equ CRLF

if %%i equ \n

???
0
boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 80
16 mars 2011 à 15:15
je suppose que t'as essayé les "if" évoqués mais avec des guillemets ?
 if "%%i" equ "\r\n"

sinon peut être essayer ceci (source : https://www.robvanderwoude.com/if.php ):
IF "%%i"=="/?" ...
0
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 4
16 mars 2011 à 15:19
Oui j'ai essayé avec les "" mais ça ne fonctionne pas ...
Le "%%i" == "/?" non plus :-(
0
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 4
16 mars 2011 à 15:06
Up
0
badside Messages postés 78 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 16 mars 2012 4
25 mars 2011 à 15:23
Personne ne sait ?

Ça fait un moment que je ne trouve pas ... :-S

Comment tester un retour à la ligne ?
If %variable == "RETOURLIGNE" echo Ca marche !!!

Merci !
0