<p>Je vous suggère d’utiliser la cmdlet <a href="https://learn.microsoft.com/powershell/module/microsoft.powershell.core/get-command?view=powershell-7.4"><code>Get-Command</code></a> de Windows PowerShell, comme décrit dans <a href="https://stackoverflow.com/questions/304319/is-there-an-equivalent-of-which-on-the-windows-command-line#77295239">une autre réponse à cette question</a> par Marawan Mamdouh.</p>
<p>Si vous êtes comme moi et n’utilisez pas PowerShell, utilisez le programme <a href="https://learn.microsoft.com/windows-server/administration/windows-commands/where"><code>where.exe</code></a> de Windows. Comme <code>which</code> sous Unix, il affiche le chemin complet correspondant à la commande (nom de fichier uniquement) que vous tapez :</p>
<pre><code class="lang-auto">C:> where edit
C:\Windows\System32\edit.com
</code></pre>
<p>Contrairement à <code>which</code>, <code>where.exe</code> peut afficher tous les chemins correspondant au nom de fichier donné, bien que seul le premier affiché soit normalement utilisé lors du lancement d’un programme :</p>
<pre><code class="lang-auto">C:> where notepad
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
</code></pre>
<p><code>where.exe</code> essaie de suivre les règles du shell de commande Windows CMD.EXE concernant les noms de fichiers et chemins qui fonctionnent comme commandes. Cela inclut la variable d’environnement <code>%PATHEXT%</code> et la possibilité d’ouvrir des fichiers de données non-programmes en utilisant leurs noms de fichiers avec extensions :</p>
<pre><code class="lang-auto">C:> set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
C:> where Enterprise.xml slmgr
C:\Windows\Enterprise.xml
C:\Windows\System32\slmgr.vbs
</code></pre>
<p><code>where.exe</code> accepte même les caractères génériques, donc <code>where nt.exe</code> trouve tous les fichiers dans votre <code>%PATH%</code> et le répertoire courant dont les noms commencent par <code>nt</code> et se terminent par <code>.exe</code> :</p>
<pre><code class="lang-auto">C:> where nt.exe
C:\Windows\System32\ntoskrnl.exe
C:\Windows\System32\ntprint.exe
C:\Windows\System32\ntvdm.exe
</code></pre>
<p>Consultez la <a href="https://learn.microsoft.com/windows-server/administration/windows-commands/where">documentation en ligne de <code>where.exe</code></a> ou exécutez <code>where.exe /?</code> pour plus d’aide.</p>
<p><em>Remarques</em> :</p>
<ul>
<li>Lorsque vous utilisez PowerShell, exécutez <code>where.exe</code> en tant que <code>where.exe</code>, jamais <code>where</code>. Le simple <code>where</code> dans PowerShell est un alias pour [<code>Where-Object</code>](<a href="https://learn.microsoft.com/powershell/module/microsoft.po">https://learn.microsoft.com/powershell/module/microsoft.po</a></li>
</ul>
<p><em>(Réponse tronquée)</em></p>