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.
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?
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.
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.
Zur Erweiterung auf steve ‚s Antwort, von der %SYSTEM_ROOT%
Sie einen laufen attrib
suchen, 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%
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.