Öffnen Sie Powershell in einem bestimmten Verzeichnis über die Verknüpfung

74

Das klingt so, als ob es so einfach sein sollte ... Ich muss dumm sein.

Ich möchte nur eine Windows-Verknüpfung erstellen, die Powershell in einem bestimmten Verzeichnis öffnet:

Ich benutze das Ziel:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe 
    -noexit -command {cd c:/path/to/open}

Setzen Sie es spuckt nur den Befehl als Text aus.

Dave Bish
quelle

Antworten:

122

Verwenden Sie diesen Befehl.

powershell.exe -noexit -command "cd c:\temp"

-NoExit: Beenden Sie das Programm nicht, nachdem Sie Startbefehle ausgeführt haben.

Loïc MICHEL
quelle
17
Sie sollten 's einschließen, wenn Leerzeichen in Ihrem Pfad vorhanden sind:powershell.exe -noexit -command "cd 'c:\a path with spaces\readme.txt'"
blachniet
Genau das, wonach ich gesucht habe. Die zusätzlichen Anführungszeichen sind erforderlich, auch wenn Sie mit interpolierten Pfaden arbeiten.
Aluan Haddad
6
Wenn es sich um eine Verknüpfung handelt (wie in, Tipps und Tricks), gibt es Folgendes: Wenn Sie sich im gewünschten Ordner im gewünschten Windows Explorer befinden, können Sie powershelldie Adressleiste eingeben und PowerShell wird an dieser Stelle geöffnet. Dies funktioniert auch für cmdund jede andere Anwendung, die Windows über die Umgebungsvariable PATH finden kann.
Sameer Singh
Gibt es eine Idee, warum diese Lösungen PS in einem schwarzen CMD-Fenster anstelle des standardmäßigen blauen PS-Fensters öffnen?
Bubbleking
Vielen Dank, ich habe es verwendet, um die Verwendung des Terminals in Android Studio zu vermeiden, wo die Befehle aufgrund eines Fehlers abgeschnitten werden.
Piero
41

Sie können auch das Verknüpfungsfeld "Start in" auf den gewünschten Ort einstellen.

Shay Levy
quelle
1
Bei weitem die einfachste Lösung, insbesondere wenn Sie versuchen, einen Pfad mit Leerzeichen oder ungeraden Zeichen zu verwenden (z. B. alles unter Programme (x86))
Henry Wilson
17
"Start in" hat bei mir nicht funktioniert, wurde aber immer noch in c: \ windows \ system32 gestartet.
Mattias Örtenblad
14
Ja, dies funktioniert nicht, wenn in der Verknüpfung "Als Administrator ausführen" aktiviert ist.
Mica
2
Es ist noch cooler, wenn Sie das Start inFeld leer lassen, weil es dann an der aktuellen Position geöffnet wird.
t3chb0t
Dies ist die Lösung, die für mich am besten funktioniert hat. Ich habe eine Kopie der vorhandenen Verknüpfung erstellt, sie "- Vagrant" genannt und dann den Pfad "Start in" auf den Ort gesetzt, an dem meine VagrantFile gelebt hat. Jetzt drücke ich einfach die Abkürzung und "vagrant up" und kann anfangen zu arbeiten.
Caleb
9

Ok - Sie müssen den &Parameter verwenden, um anzugeben, dass es sich um einen Powershell-Befehl handelt. Die Syntax unterscheidet sich geringfügig:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe 
-noexit -command "& {cd c:\path\to\open}"
Dave Bish
quelle
Gibt es einen Unterschied zwischen dieser und der Lösung von Kayasak ?
sancho.s ReinstateMonicaCellio
Ich verwende PowerShell in Hyper . In habe .hyper.jsich diese Lösung wie folgt verwendet : shellArgs: ['-noexit', '& {cd "$HOME\\my old documents"}']. Ich konnte nicht machen ['-noexit', '-command', '"cd "$HOME\\my old documents"']oder ['-noexit', '-command "cd "$HOME\\my old documents"']arbeiten.
Vulkanischer Rabe
alter Beitrag, hat mir aber nur geholfen :) Ich war es leid, als Administrator im System32-Verzeichnis hängen zu bleiben. Vielen Dank
Randy R
5

Versuchen:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe 
-noexit -command "cd c:/path/to/open"
CB.
quelle
4

Wenn Powershell als Administrator gestartet und in einem bestimmten Verzeichnis ausgeführt werden soll, auch auf einem anderen Laufwerk, ist es besser, den Set-LocationBefehl zu verwenden. Folge diesen Schritten

  1. Erstellen Sie einen ShortCutLink, wobei das Ziel die Powershell-Befehls-Exe ist.
  2. Lassen Sie Start in:leer. ( Normalerweise beginnt dies im aktuellen Arbeitsverzeichnis, wenn es leer ist; aber das ist uns egal. )
  3. Ändern Sie Targetdies mit Ihren Zielen für Powershell und Standorte:

    C:\Windows\...\v1.0\powershell.exe -noexit -command "Set-Location D:\_DCode\Main"

  4. Klicken Advanced...und auswählen Run as administrator.
  5. Klicken Sie OKauf.

Vergessen Sie nicht den praktischen Trick, um die Farben der Verknüpfung auf der ColorsRegisterkarte zu ändern . Wenn Sie zwei oder mehr Links haben, die Powershell-Fenster öffnen, können Sie durch das Anzeigen einer anderen Farbe visuell erkennen, in welcher Shell gearbeitet wird.

ΩmegaMan
quelle
4

Definieren Sie eine Verknüpfung für Powershell und öffnen Sie die Eigenschaften davon. Geben Sie schließlich unter "Start" das Ordnerziel ein, das geöffnet werden soll, wenn die Powershell-Verknüpfung ausgelöst wird

PaulDev
quelle
1

Kopieren Sie diesen Code in den Editor und speichern Sie ihn mit einer reg-Erweiterung. Doppelklicken Sie auf die resultierende Datei. Wenn Sie eine Meldung zum Importieren in die Registrierung erhalten, klicken Sie auf Ja und dann auf OK. Navigieren Sie zu einem beliebigen Ordner im Explorer und rufen Sie das Kontextmenü auf. Dies erfolgt normalerweise durch Klicken mit der rechten Maustaste.


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\PShell]
"MUIVerb"="Open in Powershell Window"

[HKEY_CLASSES_ROOT\Directory\Background\shell\PShell\command]
@="c:\\windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"
Scott Dimond
quelle
1

Wenn Sie einen Explorer mit der rechten Maustaste auswählen möchten, führen Sie dieses Skript aus:

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
if(-not (Test-Path -Path "HKCR:\Directory\shell\$KeyName"))
{
    Try
    {
        New-Item -itemType String "HKCR:\Directory\shell\$KeyName" -value "Open PowerShell in this Folder" -ErrorAction Stop
        New-Item -itemType String "HKCR:\Directory\shell\$KeyName\command" -value "$env:SystemRoot\system32\WindowsPowerShell\v1.0\powershell.exe -noexit -command Set-Location '%V'" -ErrorAction Stop
        Write-Host "Successfully!"
     }
     Catch
     {
         Write-Error $_.Exception.Message
     }
}
else
{
    Write-Warning "The specified key name already exists. Type another name and try again."
}

Folgendes wird jetzt gezeigt:

Geben Sie hier die Bildbeschreibung ein


Beachten Sie, dass Sie ein detailliertes Skript zum Starten von PowerShell über den Windows Explorer herunterladen können .

Frank Tan
quelle
0

Ich wollte nur meinen Developer Powershell-Link hinzufügen ... für die Datensätze.

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -noe -c "&{Import-Module """C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"""; Enter-VsDevShell d998f19b; cd c:\dev\}"

Dies startet die Developer Powershell (VS 2019) in c:\dev\.

Gilu
quelle