"welche" für Windows

916
Ken

Mögliches Duplizieren:
Windows-Äquivalent von Whereis?

Ich bin es gewohnt, auf Unix-Systemen "which foo" zu sagen, um zu sehen, was läuft.

Heute habe ich Probleme mit einem Programm unter Windows, und ich denke, es ist möglicherweise der falsche Befehl, der ausgeführt wird. Wie kann ich anhand von cmd.exe feststellen, welches Programm tatsächlich ausgeführt wird, wenn ich "foo" eingebe?

1
http://superuser.com/questions/21067/windows-equivalent-of-whereis/39260#39260 akira vor 13 Jahren 1
Akira: Toller Fund! (Ich hatte Mühe, SU davon zu überzeugen, dass ich das Wort "welche" finden wollte.) Kann ich einen Kommentar zu einer Antwort segnen? :-) Ken vor 13 Jahren 0

4 Antworten auf die Frage

0
Aeo

Ich würde vorschlagen, mit Ihrem "foo" Beispiel zu tippen

foo /? 

Das sollte unter Windows ähnlich sein wie das Hinzufügen von --help in Linux. Nicht immer, wohlgemerkt, aber es sollte Sie genau wissen, was los ist, sowie eine Befehlssyntax.

Aber foo laufen /? zeigt nicht an, aus welchem ​​Verzeichnis es läuft, sondern nur, wie es ausgeführt wird. Dies ist nicht die Anforderung des OP. steve.lippert vor 13 Jahren 0
@ steve.lippert .. Richtig, aber wenn man die Verwendung zurückbekommt, ist * etwas * normalerweise mit dem Programm selbst verbunden - wenn auch nicht in allen Fällen warren vor 13 Jahren 0
In diesem Fall handelt es sich leider um einen Befehl, der keine sichtbare Ausgabe hat oder eine allgemeine Fehlermeldung ausgibt. Von "/?" (Und anderen Flags, die ich mir ausdenken kann) kann ich nicht genau sagen, welche davon läuft. Ken vor 13 Jahren 1
0
steve.lippert

Ich kenne kein "what" für Windows, aber von der Befehlszeile aus können Sie den Pfad ausführen, um zu sehen, wo nach den Dateien gesucht wird. Ich glaube, dass es den Pfad in der richtigen Reihenfolge durchsucht und die erste ausführbare Datei ausführt, die es findet.

Denken Sie daran, dass CMD.EXE auch das lokale Verzeichnis nach einem Programm durchsucht, das ausgeführt werden soll. Ich glaube, das hat Vorrang.

Ich dachte, ich hätte gehört, dass `cmd.exe` einige Sonderfälle hat, die nicht in% PATH% sind, weshalb ich frage. Außerdem liebe ich es nicht, selbst durch alle Wege zu jagen. :-) Ken vor 13 Jahren 1
0
warren

Zur Erweiterung auf steve ‚s Antwort, von der %SYSTEM_ROOT%Sie einen laufen attribsuchen, um zu sehen, wo‚foo‘leben, dann in das Verzeichnis % PATH% zu vergleichen, um zu sehen, welche zuerst würden ausführen:

attrib /s foo.exe ... echo %PATH% 
Gut zu wissen! Die Variable ist jedoch% systemroot%. cd% systemroot%, attrib / s ping.exe steve.lippert vor 13 Jahren 0
-1: `attrib / s foo.exe` durchsucht nur das aktuelle Verzeichnis und alle Unterverzeichnisse nach foo.exe. (Sie könnten dasselbe mit 'dir / ad / s / b foo.exe' oder mit Win + F tun.) Auf meinem Computer ist% SYSTEMROOT% C: \ WINDOWS, also suchen Sie wirklich nur in diesem Verzeichnis und unten. Sie könnten zuerst cd \ `verwenden oder mit Win + F nach foo.exe suchen, aber diese Preform-Suche dauert wirklich lange, wenn Sie wirklich nur den Pfad suchen müssen. Bavi_H vor 13 Jahren 0
0
Charlie Sauer

Was mit Cygwin ( http://cygwin.org ) mitgeliefert wird, wird von cmd.exe ausgeführt und macht wahrscheinlich das, was Sie sonst wollen. Wenn Sie nach einem .bat suchen, müssen Sie explizit das .bat hinzufügen, z. B. "which gorp.bat" findet gorp.bat, aber "which gorp" wird nicht angezeigt.

Schöne Idee, aber leider ist dies ein Server, auf dem Cygwin nicht installiert ist, und ich bin mir nicht sicher, ob sie Cygwin dort installieren wollen. Ken vor 13 Jahren 0