2808 Stimmen

Gibt es ein Äquivalent zu "which" in der Windows-Befehlszeile?

Da ich manchmal Pfadprobleme habe, bei denen eines meiner eigenen cmd-Skripte von einem anderen Programm (das weiter oben im Pfad liegt) verdeckt (überschattet) wird, würde ich gerne den vollständigen Pfad zu einem Programm in der Windows-Befehlszeile finden können, wenn ich nur seinen Namen angeben kann.

Gibt es eine Entsprechung für den UNIX-Befehl 'which'?

Unter UNIX, which command gibt den vollständigen Pfad des angegebenen Befehls aus, um diese Schattenprobleme leicht zu finden und zu beheben.

0 Stimmen

Was bedeutet "welches" unter Unix?

3 Stimmen

Foredecker: "which" sucht im PATH nach der ausführbaren Datei, die ausgeführt wird, wenn Sie an der Shell-Eingabeaufforderung einen Befehl eingeben.

3 Stimmen

Wenn Sie z.B. 5 Versionen von Java installiert haben und nicht wissen, welche verwendet wird, können Sie "which java" eingeben und Sie erhalten den PATH zum Binary

39voto

Ferruccio Punkte 96076

El GnuWin32 Werkzeuge haben which zusammen mit einer ganzen Reihe anderer Unix-Tools.

32voto

automatix Punkte 12648

Unter Windows CMD which ruft auf. where :

$ where php
C:\Program Files\PHP\php.exe

1 Stimmen

Hier werden alle verfügbaren Ressourcen aufgelistet. Für mich habe ich where pip und ich erhielt die drei Ergebnisse. Ich bin mir nicht sicher, welches davon das ausgeführte ist.

2 Stimmen

Ihre Antwort unterscheidet sich nicht wesentlich von die akzeptierte Antwort und nicht sehr nützlich, da sie keinen neuen Wert oder keine neuen Informationen liefert. Bitte vermeiden Sie es, doppelte Antworten zu verfassen. Bearbeiten Sie Ihre Antwort, um ihr einen Mehrwert zu verleihen, oder löschen Sie sie ganz, um sicherzustellen, dass alle Fragen und Antworten auf der Website nützlich und nicht verstreut/dupliziert bleiben.

18voto

palswim Punkte 11356

Cygwin ist eine Lösung. Wenn es Ihnen nichts ausmacht, eine Lösung eines Drittanbieters zu verwenden, dann ist Cygwin der richtige Weg für Sie.

Cygwin bietet Ihnen den Komfort von *nix in der Windows-Umgebung (und Sie können es in Ihrer Windows-Befehlsshell oder in einer *nix-Shell Ihrer Wahl verwenden). Es bietet Ihnen eine ganze Reihe von *nix-Befehlen (wie which ) für Windows, und Sie können dieses Verzeichnis einfach in Ihre PATH .

10 Stimmen

Das bereits von Ferruccio erwähnte GnuWin32 ist in diesem Fall viel besser, da man native wobei allein ausführbar.

0 Stimmen

GnuWin32 ist großartig, und ich benutze es, aber wenn Sie diese Funktionalität ohne die Installation der GnuWin32-Tools wollen, scheint where.exe die richtige Wahl zu sein. Allerdings habe ich die GnuWin32-Tools in einer \bin $ in unserem Netzwerk freigeben, damit ich sie von Arbeitsstationen (und in Batch-Dateien) verwenden kann, auf denen sie nicht lokal installiert sind.

1 Stimmen

Wenn wir über die Verwendung von Cygwin unter Windows sprechen, bevorzuge ich: cygpath -w "`welcher <Anwendungsname>`"

14voto

vulcan raven Punkte 31125

In PowerShell lautet sie gcm , die formatierte Informationen über andere Befehle liefert. Wenn Sie nur den Pfad zur ausführbaren Datei abrufen wollen, verwenden Sie .Source .

Zum Beispiel: gcm git o (gcm git).Source

Leckerbissen:

  • Verfügbar für Windows XP.
  • Verfügbar seit PowerShell 1.0.
  • gcm ist ein Alias von Get-Command Cmdlet .
  • Ohne Parameter listet es alle verfügbaren Befehle der Host-Shell auf.
  • Sie können einen benutzerdefinierten Alias erstellen mit Set-Alias which gcm und verwenden Sie es wie: (which git).Source .
  • Offizielle Dokumente: https://technet.microsoft.com/en-us/library/ee176842.aspx

12voto

Fez Punkte 139

Ich habe eine Funktion in meinem PowerShell-Profil mit dem Namen 'which'

function which {
    get-command $args[0]| format-list
}

So sieht die Ausgabe aus:

PS C:\Users\fez> which python

Name            : python.exe
CommandType     : Application
Definition      : C:\Python27\python.exe
Extension       : .exe
Path            : C:\Python27\python.exe
FileVersionInfo : File:             C:\Python27\python.exe
                  InternalName:
                  OriginalFilename:
                  FileVersion:
                  FileDescription:
                  Product:
                  ProductVersion:
                  Debug:            False
                  Patched:          False
                  PreRelease:       False
                  PrivateBuild:     False
                  SpecialBuild:     False
                  Language:

0 Stimmen

Keine der anderen Lösungen hat bei mir funktioniert, aber > get-command app.exe | format-list hat perfekt funktioniert!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X