Tipps zur einfachen Alternative / Verwaltung von PATH in Windows

2

Ich komme von Linux, wo ich daran gewöhnt bin, dass die meisten Anwendungen in / usr / bin installiert werden und meine Tools in ~ / bin. Das bedeutet, dass ich die PATH-Variable selten ändern muss.

Da ich als Entwickler arbeite, muss ich die Befehlszeile verwenden. Ich habe vor, Powershell zu verwenden, aber ich hasse es, bei jeder Installation eines neuen Dienstprogramms (z. B. 'java') Pfade zu PATH hinzufügen zu müssen.

Welche Möglichkeiten habe ich, um die gleiche Erfahrung wie unter Linux zu machen, wo ich eine Anwendung installiere (normalerweise unter 'c: \ program files \ some app') und sie in meiner Shell zur Verfügung habe? Etwas, das möglicherweise alle "c: \ program files" durchsucht (normalerweise befinden sich Anwendungen entweder unter "c: \ program files \ some app" oder "c: \ program files \ some app \ bin")?

IttayD
quelle
Keine wirkliche Antwort, da ich Powershell nicht kenne, aber ... hat Powershell nicht ein aliasähnliches Feature?
Quack Quijote

Antworten:

0

Eine interessante Frage, und ich fürchte, ich habe keine gute Antwort ... aber ich hatte diese Idee:

Erstellen Sie ein Verzeichnis in Ihrem% USERPROFILE% -Verzeichnis, nennen Sie es vielleicht sogar bin und fügen Sie diesen Pfad hinzu. Dann haben Sie ein Skript, das Sie ausführen können, das eine Reihe von Hardlinks zu den ausführbaren Dateien in Ihrem Programmdateiverzeichnis "erstellt".

gci -r -include *.exe 'C:\Program Files' | % { fsutil hardlink create "C:\Users\Ittay\bin\$_.Name" "$_.FullName" }

Es gibt ein paar Probleme damit, wie das völlige Fehlen der Kollisionsbehandlung, 64-Bit-Systeme, für die Sie sowohl die Verzeichnisse "Programme" als auch "Programme (x86)" benötigen. Hardlinks sind auch nur auf NTFS-Volumes verfügbar ... und Wenn etwas den Inhalt Ihres bin-Verzeichnisses ändern würde, könnte dies natürlich die Änderungen an Ihren Programmen widerspiegeln (obwohl einfaches Löschen sicher wäre). Und wahrscheinlich viele, viele mehr. Vielleicht kann jemand anderes dies als Ausgangspunkt für etwas Großartiges verwenden?

Goyuix
quelle
Habe das dirTeil gerade auf meinem eigenen System ausprobiert . Kollisionen sind in der Tat das größte Problem. Java ist eine besondere Ursache. Neben der 32-Bit- und der 64-Bit-Laufzeit (ich bin auch Entwickler) gibt es die Laufzeiten, die mit MATLAB und Mathematica geliefert werden. Ich sehe nicht, wie das automatisiert werden könnte.
SealedSun
Ich dachte an ein weiteres großes Problem - einige Anwendungen im Programmverzeichnis werden möglicherweise in ihrem Anwendungsordner gestartet - z. B. das Arbeitsverzeichnis, das auf den Speicherort der ausführbaren Datei festgelegt ist. Diese Methode würde das schrecklich zerstören.
Goyuix
1

Ich teile meine Windows-Installationsdateien in drei Kategorien ein: Lightweight-Dienstprogramm (die meisten Befehle, die Sie von Linux gewohnt sind), Heavyweight (diejenigen, die mit einer kleinen Anzahl von DLLs und Hilfsdateien wie Flac installiert werden) und Anwendungen.

Es ist unwahrscheinlich, dass Sie die großen Anwendungen (wie Firefox, Open Office usw.) über die Befehlszeile aufrufen. Installieren Sie sie daher im Standardbereich.

Anschließend installiere ich die Lightweight-Utils an einigen bekannten Stellen - meistens ~ / bin und c: / bin - und füge diese beiden Verzeichnisse am Anfang des Pfads ein.

Schließlich habe ich die Einträge im mittleren Bereich in einem eigenen Verzeichnis unter c: / apps abgelegt. Wenn Sie diese Programme über die Befehlszeile aufrufen, ist es umso besser, je weniger Sonderzeichen Sie maskieren müssen.

Ich benutze auch msys. Sowohl cygwin als auch msys sind dem Windows-Dateisystem feindlicher als ich es mir wünsche, aber msys ist weniger aufdringlich, aber auch weniger vollständig.

Ihr Pfad wird unter Windows wahrscheinlich immer noch größer sein als unter Unix. Ich habe einen "path2.bat" -Befehl, der den Pfad durch tr führt, damit ich jeden Eintrag in einer eigenen Zeile sehen kann und einen Bildschirm ausfüllt.

Eric
quelle