Terminal: Windows Terminal: Terminal im aktuellen Ordner mit einem einzigen Befehl öffnen

Erstellt am 9. Mai 2019  ·  43Kommentare  ·  Quelle: microsoft/terminal

Momentan kann ich cmd und Powershell im aktuellen Ordner öffnen, indem ich cmd oder powershell in die Adressleiste des Explorers eintippe (der sich über STRG+D öffnet, also wirklich ordentlich und schnell ist).

Es wäre toll, wenn dies auch mit dem neuen Windows Terminal möglich wäre. Da es sich jedoch um eine Windows Store-App handelt, kann ich keine einfache Möglichkeit finden, sie zu PATH hinzuzufügen. Außerdem wird der aktuelle Ordner beim Öffnen nicht berücksichtigt. Es startet immer im Standardordner ( C:\WINDOWS\system32 für cmd und ~ für Ubuntu).

Es wäre toll, wenn dies möglich wäre:

  • Ermöglichen Sie das Hinzufügen von Windows Terminal zu PATH.
  • Öffnen Sie die Befehlszeile im aktuellen Ordner im Windows-Terminal.

Schön wäre es auch, wenn es mit einem kurzen Befehl geöffnet werden könnte.
Die ausführbare Datei heißt derzeit WindowsTerminal . Wäre schön, wenn wir einfach etwas wie term eingeben könnten.

Resolution-Answered

Hilfreichster Kommentar

Ab v0.5 funktioniert das eigentlich nicht mehr. Sie müssen "startingDirectory": null festlegen, damit dies tatsächlich funktioniert. Dieser Fix wurde in #2515 unbeabsichtigt rückgängig gemacht.

Alle 43 Kommentare

Was passiert, wenn Sie wt.exe ?

https://github.com/microsoft/Terminal/blob/af7316c130059ba15fe16ff0d13608d956a2b449/src/cascadia/CascadiaPackage/Package.appxmanifest#L51

Der Alias ​​sollte bereits ein WindowsTerminal starten, aber ich bin mir nicht sicher, ob es in dem von Ihnen angegebenen Pfad gestartet wird

@joandrsn Das ist großartig, ich wusste es nicht. Vielen Dank.

@joandrsn Danke! Es startet sogar im aktuellen Verzeichnis!

Wie übergeben Sie einen Verzeichnispfad an wt.exe. Etwas wie das:

wt.exe "C:\GitHub"

Versucht, aber immer im Standardordner für CMD und PowerShell geöffnet.

Ich kann die WSL Ubuntu-Shell im aktuellen Ordner mit ubuntu run öffnen. aber wt immer im Standardordner geöffnet

Entferne startingDirectory aus deinem profiles.json.

Hallo @DHowett-MSFT,
Gibt es eine Möglichkeit, Windows Terminal aufzufordern, einen neuen Tab im selben Ordner wie den aktuellen Tab zu öffnen? Ich möchte das gleiche Verhalten wie auf Mac OS X : https://apple.stackexchange.com/questions/178017/how-do-i-open-a-new-terminal-window-for-same-directory -als-aktuelles-Fenster.
Danke im Voraus!

Entferne startingDirectory aus deinem profiles.json.

@DHowett-MSFT, das funktioniert nicht in der neuesten Version 0.5.2661.0 :(

Entferne startingDirectory aus deinem profiles.json.

Bei mir funktioniert es auch nicht :(

Ab v0.5 funktioniert das eigentlich nicht mehr. Sie müssen "startingDirectory": null festlegen, damit dies tatsächlich funktioniert. Dieser Fix wurde in #2515 unbeabsichtigt rückgängig gemacht.

Ich möchte auch neue Tabs im aktuellen Verzeichnis öffnen

Ab v0.5 funktioniert das eigentlich nicht mehr. Sie müssen "startingDirectory": null festlegen, damit dies tatsächlich funktioniert. Dieser Fix wurde in #2515 unbeabsichtigt rückgängig gemacht.

@zadjii-msft , das funktioniert nicht in v0.5.2681.0

Ab v0.5 funktioniert das eigentlich nicht mehr. Sie müssen "startingDirectory": null festlegen, damit dies tatsächlich funktioniert. Dieser Fix wurde in #2515 unbeabsichtigt rückgängig gemacht.

Funktioniert auch nicht mit 0.5.2762.0..
Ich habe versucht, den Wert zu entfernen, auf null zu setzen. Beides ändert nichts..

Um es klar zu sagen, _das Entfernen von startingDirectory anstatt es auf null _ ist keine Funktion, die zurückkommt; Wir suchen nach alternativen Ansätzen, wann genau StartingDirectory angewendet werden soll, aber die Einstellung kann immer unterdrückt werden, indem sie auf null gesetzt wird.

Ab v0.5 funktioniert das eigentlich nicht mehr. Sie müssen "startingDirectory": null festlegen, damit dies tatsächlich funktioniert. Dieser Fix wurde in #2515 unbeabsichtigt rückgängig gemacht.

Funktioniert auch nicht mit 0.5.2762.0..
Ich habe versucht, den Wert zu entfernen, auf null zu setzen. Beides ändert nichts..

"startingDirectory": null funktioniert für mich - es muss einem bestimmten Profil zugeordnet werden, anstatt ein Element auf Root-Ebene zu sein

@DHowett-MSFT Es scheint mir, dass ein Ansatz, Einstellungen in einer Konfigurationsdatei ( startingDirectory ) zu haben, die durch die Übergabe von Befehlszeilenparametern überschrieben werden können, im Allgemeinen ziemlich verbreitet ist. Vielleicht verstehe ich das Problem hier nicht :)

Wenn ich mich an das Gespräch vom letzten Monat erinnere, war es:

Das Löschen der Einstellung „startingDirectory“ durch Löschen aus Ihrem Benutzerprofil (im speziellen Fall der zwei oder drei standardmäßig ausgelieferten Profile), anstatt sie auf null zu setzen, um sie zu löschen, ist keine Funktion, die zurück kommen.

607 gibt an, dass wir Befehlszeilenargumente unterstützen, von denen eines die Überschreibung des Startverzeichnisses ist.

Dies scheint meinem Verständnis Ihres Verständnisses dieser Konversation zu entsprechen. :Lächeln:

Für mich Einstellung "startingDirectory": "." macht den Job.

Gibt es ein anderes Problem, wenn das Terminal standardmäßig geöffnet ist, um "%USERPROFILE%" zu sagen, aber null wenn es vom Windows Explorer gestartet wird?

@carlinmack Ich glaube nicht, dass das unbedingt notwendig ist.

  • Das Windows-Terminal verwendet standardmäßig das Home-Verzeichnis des Benutzers, wenn Sie es über die Verknüpfung im Startmenü oder durch Eingabe von "wt" in Win+R starten. Das heißt, wenn Sie "startingDirectory": "." sie immer noch im Home-Ordner des Benutzers geöffnet ( %USERPROFILE% ).
  • Wenn Sie wt über die Adressleiste von Windows Explorer starten oder über etwas wie cmd.exe (oder eine andere Shell) zu einem bestimmten Ordner navigieren, stellt "startingDirectory": "." sicher, dass Windows Terminal in dem Verzeichnis geöffnet wird, in dem Sie sich befanden.
  • Allerdings ... Alle zusätzlichen Registerkarten, die Sie in der Windows-Terminal-Sitzung öffnen, werden ab dem Startzeitpunkt im "aktuellen Arbeitsverzeichnis" geöffnet, was ein kleines Ärgernis sein kann.

Das Windows-Terminal verwendet standardmäßig das Home-Verzeichnis des Benutzers, wenn Sie es über die Verknüpfung im Startmenü oder durch Eingabe von "wt" in Win+R starten. Das bedeutet, wenn Sie "startingDirectory" verwenden: "." sie öffnen sich immer noch im Home-Ordner des Benutzers (%USERPROFILE%).

In diesem Fall ist es für mich standardmäßig system32.

Danke @torpederos

"startingDirectory": " . "
"startingDirectory": "% __ CD __ %"

Geprüft. Bei mir funktioniert beides gut. Meine Lösung .

@RickStrahl hat zu diesem Thema einen guten Blog geschrieben. Schau es dir an .

In meinem Fall hat das funktioniert.

"profiles":
    {
        "defaults":
        {
            "startingDirectory": "."
        },

"startingDirectory": "." funktioniert, aber wenn ich das Terminal über die Suche öffne, wird standardmäßig system32 verwendet.
Gibt es eine Möglichkeit, das Benutzerverzeichnis zu öffnen, wenn der Pfad nicht angegeben ist?

"startingDirectory": "." funktioniert, aber wenn ich das Terminal über die Suche öffne, wird standardmäßig system32 verwendet.
Gibt es eine Möglichkeit, das Benutzerverzeichnis zu öffnen, wenn der Pfad nicht angegeben ist?

Ich hatte das gleiche Problem. Ich habe es behoben, indem ich die folgende Zeile am Ende meiner .bashrc-Datei hinzugefügt habe.

export CURR_DIRECTORY=`pwd`
if [ "$CURR_DIRECTORY" = "/mnt/c/WINDOWS/system32" ]; then
    cd ~
fi

Die Lösung von @manishprivet war großartig, außer dass Um richtig zu funktionieren, habe ich system32 in System32 geändert. Es ist eine gute Idee, pwd auszuführen und die Ausgabe zu kopieren.

Ich habe eine Problemumgehung gefunden, indem ich "Terminal hier öffnen" zum Rechtsklick hinzugefügt habe.

Schritt 1:-
Entfernen Sie das Startverzeichnis aus der settings.json für alle Profile.

Schritt 2:-
Fügen Sie das offene Terminal hinzu, um gemäß diesem Beitrag mit der rechten Maustaste zu klicken.
https://github.com/microsoft/terminal/issues/1060#issuecomment -497539461
Ich habe den 2. Registrierungswert von @="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe" in @="C:\Users\[your username]\AppData\Local\Microsoft\WindowsApps\wt.exe -d ." geändert

Verhalten nach Modifikationen:
Wenn ich das Terminal mit der Suche / Taskleiste / Verknüpfung öffne, wird es in meinem Benutzerordner geöffnet.
Immer wenn ich das Terminal mit dem Explorer öffnen möchte, klicke ich einfach mit der rechten Maustaste und wähle die Option Windows terminal here .

Hinweis 1: Vergessen Sie nicht, -d . am Ende des zweiten Registrierungswerts hinzuzufügen, andernfalls funktioniert dies nicht.

Hinweis 2: Das Eingeben von wt in die Explorerleiste öffnet das Terminal immer noch in system32. Sie sollten immer noch wt -d . wenn Sie das Terminal im aktuellen Ordner mit der "Explorerleiste" öffnen möchten.

Einfach hinzufügen

"startingDirectory": null

Es funktioniert mit wt V1.0 einwandfrei.

Wenn Sie es vorziehen, wt im SHIFT-Menü anzuzeigen, genau wie "PowerShell-Fenster hier öffnen" oder WSL-Optionen öffnen, können Sie diese Registrierungsdatei mit Ihrer Registrierung zusammenführen.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal here"
"ShowBasedOnVelocityId"=dword:00639bc8
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\[YourUserName]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

Bitte beachten Sie, dass der Parameter startingDirectory an dieser Stelle in der JSON-Struktur stehen sollte:

{
    //...

    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.

            // Attempt to start in current directory
            // https://github.com/microsoft/terminal/issues/620
            "startingDirectory": "."
        }
    }
}

Ich habe noch keine Lösung gefunden, die Folgendes bewirkt:

  1. Erlaube mir, ein Standardverzeichnis auszuwählen, wenn ich Terminal über das Startmenü öffne.
  2. Wenn wt.exe aus dem Explorer-Fenster ausgeführt wird, wird das Terminal in diesem Verzeichnis geöffnet.

Ist das möglich?

Nach meiner Untersuchung war das technisch nicht möglich.

Wenn beides funktionieren soll, müssen Sie wt -d . in der Explorer-Adressleiste verwenden. Dadurch kann das Starten des Terminals über das Startmenü und die Ausführungsbox wie zuvor funktionieren und Sie können das Terminal weiterhin im CWD im Explorer öffnen

Bei meiner ersten Erkundung habe ich Folgendes gefunden, basierend auf

Ansatz 1:

  1. Drücken Sie die WIN-Taste + R
  2. Geben Sie wt -d D:\SomeDirectory

Dadurch wird die in der settings.json vorhandene Standard-Shell mit diesem Verzeichnis geöffnet
PS Wählen Sie standardmäßig den Pfad basierend auf dem Betriebssystem der Shell

Ansatz 2:

  1. Gehen Sie mit dem Datei-Explorer zum gewünschten Ordner
  2. Geben Sie in die Adressleiste des gewünschten Ordners wt -d .

@AndeYashwanth Das funktioniert perfekt, danke. Jetzt kann ich es in meinem Benutzerverzeichnis über die Taskleiste öffnen und nur im aktuellen Verzeichnis öffnen, wenn ich mit der rechten Maustaste klicke 😎

Danke @29kartik Ansatz 1 hat bei mir funktioniert. Ich konnte GitKraken dazu bringen, einen benutzerdefinierten Terminalbefehl von wt -d %d sodass jetzt die Terminalverknüpfung WT im aktuellen Repository-Verzeichnis startet. 💯

Ich habe dies hinzugefügt, um es in diesem bestimmten Ordner zu öffnen

 "startingDirectory": "C:\\webdev"

Dies ist meine Ansicht über das Kontextmenü: https://gist.github.com/kmantel/9cd6bf9f0fb25694a5b08119817281b7

@nickraphael :

Ich habe noch keine Lösung gefunden, die Folgendes bewirkt:

  1. Erlaube mir, ein Standardverzeichnis auszuwählen, wenn ich Terminal über das Startmenü öffne.
  2. Wenn wt.exe aus dem Explorer-Fenster ausgeführt wird, wird das Terminal in diesem Verzeichnis geöffnet.

Habe das in settings.json :

{
    "profiles": {
        "defaults": {
            "startingDirectory": "."
        }
    }
}

lässt Windows Terminal im aktuellen Verzeichnis für mich starten, wenn es aus dem Explorer-Verzeichnis, Win + r oder aus anderen Programmen (VS Code usw.) gestartet wird. Wenn Sie jedoch aus dem Startmenü starten, indem Sie entweder suchen oder zur Verknüpfung navigieren, beginnt sie in C:\WINDOWS\system32 .

Um das Problem mit dem Startmenü zu beheben, habe ich eine Verknüpfung zu wt.exe an das Startmenü angeheftet ( where wt den Speicherort an), benannte die Verknüpfung nach meinen Wünschen um und änderte sie dann in:

Start in: %USERPROFILE%

Jetzt startet Windows Terminal in meinem Home-Verzeichnis, wenn es über das Startmenü gestartet wird.

Es wäre schön, wenn Windows Terminal sein Verzeichnis nicht standardmäßig ändern würde, um es transparenter zu machen. Es gibt nicht viele andere Programme, die das tun.

Ich frage mich auch, ob die Verknüpfung zu wt.exe vom Installationsprogramm automatisch erstellt werden könnte.

Also hat keine der obigen Antworten für meinen Anwendungsfall funktioniert. Ich möchte einen neuen Tab mit alt+shift+- öffnen und den vorherigen Ordner beibehalten. Ich habe versucht, null , "." und "%__CD__%" als Werte für "startingDirectory" an verschiedenen Stellen des JSON zu verwenden. Ich verwende Version 1.4.2652.0 von Windows Terminal Preview.

Eine nette Lösung wäre eine neue Option wie "keepCurrentDirectoryOnNewTab": true oder so ähnlich. Eine andere Möglichkeit (die Kitty verwendet) besteht darin, bei der Angabe des Verzeichnisses einen speziellen Wert namens current .

@frankitox Du interessierst dich wahrscheinlich für #3158 und ähnliche 20 Probleme, die mit diesem Thread betrogen werden
image

Es gab eine ganze Diskussion darüber, warum dies unter Windows schwer oder fast unmöglich ist.

VERSION: 1.3.2651.0

in meinem Fall funktioniert es.

    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
            "startingDirectory": "."
        },

Sie können auch "startingDirectory": "%__CD__%"

Ich bin wahrscheinlich sehr spät zur Party, aber in Windows 10 Pro 20H2 können Sie einfach wt in die Adressleiste eingeben und es wird den Zweck erfüllen.

Wie übergeben Sie einen Verzeichnispfad an wt.exe. Etwas wie das:

wt.exe "C:\GitHub"

Ich weiß nicht, ob Sie -d und path gefunden haben

wt -d .

funktioniert gut in WSL2

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen