2016-12-16 7 views
3

Ich möchte etwas in meinem PowerShell-Profil laden Skript, das macht es mir sehr einfach, über verschiedene Ordner (verschiedene Code-Repositories) zu navigieren.Erstellen Sie einen Alias ​​zum schnellen Navigieren zu einem Ordner

Ich habe Beispiele gesehen, die New-PSDrive verwendet, aber ich dachte Aliase ist eine reibungslosere Art, es zu tun. Aliase nur fühlt sich besser.

Ich bin auf der Suche nach so etwas wie folgt aus:

(In profile.ps1)

New-Item alias:foo -value c:\repos\my\code\here 

... Später in der in der Powershell-Konsole ...:

cd $foo

Und voila! Ich stehe jetzt im Verzeichnis c:\repos\my\code\here.

Was ist der richtige Ansatz?

EDIT: Ich habe Martins Antwort als accepted markiert, da es sehr direkt auf den Punkt, aber ich empfehle Ihnen, lesen Sie auch Matts Antwort, es hat ein paar tolle Punkte.

Antwort

8

Ich würde eine $repos hashtable enthält alle Ihre Repositories erstellen:

$repos = @{ 
    angular = 'c:\repos\my\angular\here' 
    typescript = 'c:\repos\my\typescript\here' 
    csharp = 'c:\repos\my\csharp\here' 
} 

dies in Ihrer $profile und Sie können diese wie die Verzeichnisse ändern:

cd $repos.angular 

Und selbst verwenden tab-completion!

+1

sieht verrückt kühl;) – 4c74356b41

+0

Scheint cool, aber leider funktioniert es nicht, immer 'fehlt‚=‘Operator nach Schlüssel in Hash literal' –

+0

Sie wahrscheinlich etwas falsch gemacht haben. Können Sie den Code schreiben Sie in Ihrem Profil setzen? –

4
$var = 'c:\repos\my\code\here' 
cd $var 
+0

beenden Sie müssen in Anführungszeichen 'c haben: von \ repos \ mein \ code \ hier' aber ja abgesehen davon, dass es zu funktionieren scheint. –

3

Was ist der richtige Ansatz?

Es gibt keinen richtigen oder falschen Ansatz. Aliase sind nützlich, sie eignen sich jedoch nur dazu, andere Cmdlets über einen anderen Namen aufzurufen. Sie können keine Einstellungen ändern oder Parameter usw. hinzufügen.

Noch etwas zu beachten wäre, Push-Location und Pop-Location in benutzerdefinierten Funktionen in Ihrem Profil zu verwenden! Auf diese Weise können Sie dahin wechseln, wo Sie sein müssen, und zurückgehen, wo Sie waren, wenn Sie fertig sind.

function myfolder{ 
    Push-Location c:\temp 
} 

function imdone{ 
    Pop-Location 
} 

Aufruf myfolder mit wechseln Sie in c:\temp. Mach deine Sachen ... wechsle sogar in andere Verzeichnisse. imdone würde Sie zurück, wo Sie waren vor Sie myfolder genannt. Das Hinzufügen weiterer Verzeichnisse zum Umdrehen kann dies erschweren, aber Sie können Stapel benennen, zu denen Sie zurückkehren möchten. Push und Pop sind robust genug dafür.

Dies kann einfach mit Martin's answer für ein robusteres Profil integriert werden, wo es einfacher ist, zentrale Änderungen vorzunehmen.

Auch wenn Sie nicht die Funktionen von Push-Location und Pop-Location können Sie einfach cd "path" innerhalb Funktionen verwenden und benennen Sie, wie Sie es für richtig halten.

function tmp{cd "c:\temp"} 

Seien Sie vorsichtig, dass Sie keine Namen verwenden, die bereits vergeben sind. Sie könnten mit einem precedence issue

+0

Einkapseln dies alles in Funktionen interessant ist. Gute Tipps. –

Verwandte Themen