Ich erinnerte mich, dass ich ein Tool namens "as" verwendet habe where
, um Speicherorte für ausführbare Programme wie dieses in einer Konsole zu finden:
C:\Tmp\Where myTool.exe
C:\Program Files\MyApp\myTools.exe
....
Jetzt kann ich dieses Tool nicht finden. Sind Sie sich nicht sicher, ob Windows ein integriertes Tool für diese Suche hat?
where
arbeitete für mich auf Windows 7 EnterpriseAntworten:
Laut der StackOverflow-Antwort unter Gibt es unter Windows ein Äquivalent von "which"? ,
where.exe
funktioniert dies unter Windows 7 und Windows Server 2003 und höher:Beispiel
Ausgabe:
quelle
where
ein Standard-Alias für dieWhere-Object
, so dass Sie stattdessen verwenden müssenwhere.exe
, odergcm
/Get-Command
Get-Command ping
(oder nurgcm ping
) eingeben , was Ihnen den vollständigen Pfad zusammen mit einigen anderen Informationen liefert .BEARBEITEN: Ich hätte hinzufügen sollen, wenn Sie den WHERE-Befehl an der Eingabeaufforderung nicht verwenden können, überprüfen Sie Ihre PATH-Variable. (Verwenden Sie einfach den Befehl "path".) Stellen Sie sicher, dass sich C: \ Windows \ System32 in Ihrem Pfad befindet. Dort befindet sich "where.exe".
WO ist der gesuchte Befehl? WHERE ist wie eine Kreuzung zwischen der in der UNIX-Shell integrierten Funktion "which" und dem Befehl "locate", da es sowohl für ausführbare Befehlsdateien als auch für reguläre Dateien funktioniert.
Es ist auch etwas komplexer als eines dieser beiden, obwohl im Allgemeinen ein einfaches
wird funktionieren.
Es unterscheidet sich vom Befehl "locate" darin, dass nicht das gesamte Dateisystem durchsucht wird. Stattdessen wird standardmäßig an zwei Speicherorten nach Dateien gesucht:
Jeder Befehl, den Sie direkt an einer Eingabeaufforderung ausführen können, ohne das Verzeichnis anzugeben, wird vom Befehl WHERE gefunden. (Da sich ein solcher Befehl bereits in der PATH-Variablenliste befindet.)
Wenn Sie nur in der Befehlspfadvariablen suchen möchten , können Sie Folgendes verwenden:
Wenn Sie dagegen alle Kopien einer Datei in einem Verzeichnisbaum suchen möchten, können Sie Folgendes verwenden:
Schließlich findet WHERE Befehle und alle Dateien mit einer Erweiterung aus der Variablen PATHEXT, ohne die Erweiterung einzuschließen. Alle anderen Dateien müssen entweder exakt oder mit Wildcards angegeben werden.
Nehmen Sie zum Beispiel die Dateien "dxdiag.exe" und "dxdiagn.dll". Beachten Sie den folgenden Befehl und seine Ausgabe:
Es ist erfolgreich, alle Versionen von "dxdiag.exe" zurückzugeben, da ".exe" eine der Erweiterungen in der PATHEXT-Variablen ist. (Hinweis: "WHERE dxdiag" hätte auch funktioniert, da sich C: \ Windows \ System32 in der PATH-Variablen befindet.)
Andernfalls wird kein Ergebnis zurückgegeben, da ".dll" nicht in PATHEXT enthalten ist.
In diesem Fall sehen Sie sich das Ergebnis an, das durch das Hinzufügen eines Platzhalters erhalten wird:
Alle Versionen von dxdiagn.dll werden erfolgreich zurückgegeben.
Verwenden Sie für weitere Informationen "WHERE /?". Hoffe das hilft!
quelle
where where
C:\Windows\System32\where.exe
:)benutze
dir
:Das
cd \
Teil wechselt in das Stammverzeichnis des Laufwerks, um sicherzustellen, dass die Suche oben in der Hierarchie beginnt.quelle
Beachten Sie, dass einige Dinge für PowerShell etwas anders sein können:
quelle
Es ist frustrierend, dass es nicht als einfacher Befehl eingebaut ist.
Es gibt jedoch mehrere Lösungen, von denen eine eine Batchdatei ist .
Erstellen Sie eine Batch-Datei (which.bat) wie folgt:
Dieser sucht im lokalen Verzeichnis, nimmt einen Dateinamenparameter mit oder ohne Erweiterung und gibt die erste Übereinstimmung aus dem aktuellen Verzeichnis oder im PATH zurück.
Führen Sie es dann wie
which cmd.exe
folgt aus, um die cmd.exe zu finden, die ausgeführt wird, wenn Sie etwas eingebencmd
.quelle
Unter Windows können Sie die kostenlose Suchmaschine Everything verwenden , um sofort nach Dateien mit vollständigem oder teilweisem Namen zu suchen (wenn Ihre Festplatte in ntfs formatiert ist).
quelle
Wenn Sie wollen einfach nur die , die GnuWin32 hat Projekt eine Reihe von Unix - utils mit einzelnen Installateure.
quelle
In PowerShell
Sie können dies problemlos in ein Cmdlet konvertieren.
Ein anderer Weg, dies zu erreichen, wie in einer Bearbeitung vorgeschlagen:
quelle
Wenn Sie nur den Pfad zum Starten benötigen, ist es oft besser, den Befehl start zu verwenden. Sie können beispielsweise "start chrome.exe" verwenden, um Chrom {e | ium} zu starten, unabhängig davon, wo es installiert ist.
quelle
Heh, ich muss nur die One-Liner-Batch-Datei von Windows posten:
Ein Test:
Nicht ganz einzeilig, wenn Sie den Code in
setlocal enableextensions
und einschließenendlocal
, was für Benutzer erforderlich ist, für die die Erweiterungen nicht standardmäßig aktiviert sind.quelle