Lokalisieren einer Datei im Pfad

7

Kann jemand den Speicherort einer Datei ermitteln, die sich in einem der von der PATH-Umgebungsvariablen angegebenen Ordner befindet, anstatt ein Verzeichnis namens filename.exe / s aus dem Stammordner zu erstellen?

Ich weiß, dass dies die Grenzen einer Programmierfrage sprengt, aber das ist nützlich für deployment-bezogene Probleme, ich muss auch die Abhängigkeiten einer ausführbaren Datei untersuchen. : -)

    
ljs 12.10.2008, 15:12
quelle

7 Antworten

31

Sie können das Dienstprogramm where.exe im Verzeichnis C:\Windows\System32 verwenden.

    
MvdD 12.10.2008, 15:17
quelle
4

Für Windows NT-basierte Systeme:

%Vor%

Ersetzen Sie file durch den Namen der Datei, nach der Sie suchen.

    
Patrick Cuff 13.10.2008 12:50
quelle
2

Wenn Sie die Datei auf API-Ebene suchen möchten, können Sie PathFindOnPath verwenden . Es hat den zusätzlichen Vorteil, dass Sie zusätzliche Verzeichnisse angeben können, falls Sie an zusätzlichen Orten suchen möchten, außer nur dem System oder dem aktuellen Benutzerpfad.

    
Nick 12.10.2008 20:29
quelle
1

Unter Windows würde ich sagen: %WINDIR%\system32\where.exe

Ihr Fragen-Titel spezifiziert keine Fenster, also stelle ich mir vor, dass einige Leute diese Frage mit einem Posix-Betriebssystem auf der Suche nach dem gleichen suchen (wie ich).

Dieses PHP-Snippet könnte ihnen helfen:

%Vor%

Dies ist ein leicht geänderter Produktionscode, den ich auf mehreren Servern laufe. (d. h. aus dem OO-Kontext herausgenommen und der Kürze halber einige Hygiene- und Fehlerüberprüfungen überlassen.)

    
Kris 12.10.2008 15:39
quelle
1

Verwenden von PowerShell unter Windows ...

%Vor%

Ich habe auch die Antwort mit einigen Details gebloggt bei Ссылка

    
ChadsTech 30.01.2018 21:37
quelle
0

Zusätzlich zu den Dienstprogrammen 'what' (MS Windows) und 'where' (unix / linux) habe ich mein eigenes Dienstprogramm geschrieben, das ich 'findinpath' nenne. Zusätzlich zur Suche nach der ausführbaren Datei, die an den Befehlszeilen-Interpreter (CLI) übergeben wird, werden alle Übereinstimmungen und die zurückgegebene Pfadsuchreihenfolge gefunden, so dass Sie Probleme mit der Pfadreihenfolge finden können. Darüber hinaus gibt mein Dienstprogramm nicht nur ausführbare Dateien zurück, sondern jede Dateispezifikationsübereinstimmung, um die Zeiten abzufangen, zu denen eine gewünschte Datei nicht ausführbar ist.

Ich fügte auch eine Funktion hinzu, die sich als sehr geschickt herausgestellt hat; Das Flag -s gibt an, dass nicht nur der Systempfad, sondern alles auf der Systemfestplatte gesucht werden soll, wobei bekannte Benutzerverzeichnisse ausgeschlossen sind. Ich habe festgestellt, dass diese Funktion in Systemverwaltungsaufgaben unglaublich nützlich ist ...

Hier ist die Ausgabe 'usage':

%Vor%

Das Schreiben eines solchen Hilfsprogramms ist nicht schwer und ich überlasse es dem Leser als Übung. Oder, wenn Sie hier gefragt werden, werde ich mein Skript veröffentlichen - es ist in 'Bash'.

    
Richard T 12.10.2008 16:17
quelle
-1

nur für Kicks, hier ist eine One-Liner Powershell-Implementierung

%Vor%     
Scott Weinstein 12.10.2008 15:58
quelle

Tags und Links