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 :

Liste des fichiers ouverts par un processus en ligne de commande


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Avatar de mlny84
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4 023
    Par défaut Liste des fichiers ouverts par un processus en ligne de commande
    Bonjour,

    Je voudrai savoir si il y avait un moyen de lister les fichiers ouverts par un processus.
    Je n'ai pas trouvé de ligne de commande comme lsof sous Unix.
    openfiles ne semble prendre en compte que les fichiers du réseau, alors que je voudrai rester en local.
    Je cherche à faire cela sous Windows XP.
    Si vous avez une idée ou une piste pour faire un script, je prends !

    Merci d'avance.

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    tu peux utiliser cet utilitaire, Handle.
    Un script d'usage sous PowerShell

  3. #3
    Membre expérimenté

    Avatar de mlny84
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4 023
    Par défaut
    Merci pour l'info et le script

    J'ai téléchargé handle et j'ai testé le script en faisant le .bat suivant au niveau du répertoire de handle.exe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    handle.exe | foreach{
        if ($_ -match '^(?<program>\S*)\s*pid: (?<pid>\d*)\s*(?<user>.*)$') {
            $matches | %{
            $id = $_.pid
            $program = $_.program
            $user = $_.user
            }
        }
        if ($_ -match '^\s*(?<handle>[\da-z]*): File  \((?<attr>...)\)\s*(?<file>(\\\\)|([a-z]:).*)') {
            #$_
            $matches | select @{n="Pid";e={$id}}, @{n="Program";e={$program}}, @{n="User";e={$user}}, @{n="Handle";e={$_.handle}}, @{n="attr";e={$_.attr}}, @{n="Path";e={$_.file}}
        }
    
    } | out-Gridview
    En le lançant dans une console MS-Dos, le message suivant m'est renvoyé :

    'foreach{' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
    Est-ce que je dois installer autre chose ? J'avoue ne pas connaître grand chose à part les lignes de commandes basiques.
    Il n'y a pas moyen de faire la même chose avec du batch classique ?

  4. #4
    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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    handle -p nom_processus
    devrait être suffisant, après tu peux encore affiner en filtrant le résultat.

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mlny84
    Est-ce que je dois installer autre chose ?
    L'exemple nécessite le Shell Microsoft PowerShell.
    Citation Envoyé par minnesota
    après tu peux encore affiner en filtrant le résultat.
    J'ai cité l'exemple, car il contenait une analyse du résultat à l'aide de regex, c'est ce qui manque au batch, comme d'autre choses d'ailleurs...
    C'est juste une démo du couplage de programme console et de PowerShell.

  6. #6
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    J'ai cité l'exemple, car il contenait une analyse du résultat à l'aide de regex, c'est ce qui manque au batch, comme d'autre choses d'ailleurs...
    C'est juste une démo du couplage de programme console et de PowerShell.
    J'avais très bien compris que c'est une illustration très cher Laurent bien que pour les regex y'a findstr, non ? Mais bon.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/02/2011, 11h11
  2. liste des fichiers ouverts
    Par zizo81 dans le forum VBScript
    Réponses: 0
    Dernier message: 30/07/2010, 10h35
  3. copier un dossier contenant des fichiers ouverts par d'autres application
    Par guefrachi dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/07/2010, 19h55
  4. Plugin Liste des fichiers ouverts
    Par eclnico dans le forum Eclipse
    Réponses: 0
    Dernier message: 18/05/2009, 15h34
  5. Réponses: 8
    Dernier message: 10/05/2008, 19h10

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