Terminal: Terminal de Windows: Abra el terminal en la carpeta actual mediante un solo comando

Creado en 9 may. 2019  ·  43Comentarios  ·  Fuente: microsoft/terminal

Actualmente puedo abrir cmd y powershell en la carpeta actual escribiendo cmd o powershell en la barra de direcciones del explorador (que se abre mediante CTRL + D, por lo que es realmente ordenado y rápido).

Sería genial si esto también fuera posible con la nueva Terminal de Windows. Pero como es una aplicación de la Tienda Windows, no puedo encontrar una manera fácil de agregarla a PATH. Tampoco respeta la carpeta actual al abrir. Siempre comienza en la carpeta predeterminada ( C:\WINDOWS\system32 para cmd y ~ para Ubuntu).

Sería genial si esto fuera posible:

  • Permitir agregar Windows Terminal a PATH.
  • Abra la línea de comando en la carpeta actual en Windows Terminal.

También sería bueno si pudiera abrirse con un comando corto.
El ejecutable actualmente se llama WindowsTerminal . Sería bueno si simplemente pudiéramos escribir algo como term .

Resolution-Answered

Comentario más útil

A partir de la versión 0.5, eso ya no funcionará. Deberá configurar "startingDirectory": null para que esto funcione realmente. Esa corrección retrocedió involuntariamente en el n. ° 2515.

Todos 43 comentarios

¿Qué sucede si usa wt.exe ?

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

El alias ya debería iniciar WindowsTerminal, pero no estoy seguro de si se inicia en la ruta que especifique

@joandrsn Esto es genial, no lo sabía. Gracias.

@joandrsn ¡Gracias! ¡Incluso se inicia en el directorio actual!

¿Cómo se pasa una ruta de directorio a wt.exe? Algo como esto:

wt.exe "C:\GitHub"

Intentado pero siempre se abre en la carpeta predeterminada para CMD y PowerShell.

Puedo abrir el shell de WSL Ubuntu en la carpeta actual con ubuntu run . pero wt siempre se abre en la carpeta predeterminada

Elimina startingDirectory de tu profiles.json.

Hola @ DHowett-MSFT,
¿Hay alguna manera de pedir Windows Terminal abrir una nueva pestaña en la misma carpeta que la pestaña actual? Quiero el mismo comportamiento que existe en Mac OS X : https://apple.stackexchange.com/questions/178017/how-do-i-open-a-new-terminal-window-for-same-directory -como-la-ventana-actual.
¡Gracias por adelantado!

Elimina startingDirectory de tu profiles.json.

@ DHowett-MSFT, esto no funciona en la última versión 0.5.2661.0 :(

Elimina startingDirectory de tu profiles.json.

Para mí tampoco funciona :(

A partir de la versión 0.5, eso ya no funcionará. Deberá configurar "startingDirectory": null para que esto funcione realmente. Esa corrección retrocedió involuntariamente en el n. ° 2515.

También me gustaría abrir nuevas pestañas en el directorio actual.

A partir de la versión 0.5, eso ya no funcionará. Deberá configurar "startingDirectory": null para que esto funcione realmente. Esa corrección retrocedió involuntariamente en el n. ° 2515.

@ zadjii-msft, esto no funciona en v0.5.2681.0

A partir de la versión 0.5, eso ya no funcionará. Deberá configurar "startingDirectory": null para que esto funcione realmente. Esa corrección retrocedió involuntariamente en el n. ° 2515.

Tampoco funciona con 0.5.2762.0 ..
He intentado eliminar el valor, configurándolo en nulo ... ninguno de los dos cambia nada ...

Para ser claros, _eliminar startingDirectory lugar de configurarlo en null _ no es una característica que vuelva; estamos buscando enfoques alternativos con respecto a cuándo aplicar exactamente el directorio de inicio, pero la configuración siempre podrá suprimirse configurándola en nulo.

A partir de la versión 0.5, eso ya no funcionará. Deberá configurar "startingDirectory": null para que esto funcione realmente. Esa corrección retrocedió involuntariamente en el n. ° 2515.

Tampoco funciona con 0.5.2762.0 ..
He intentado eliminar el valor, configurándolo en nulo ... ninguno de los dos cambia nada ...

"startingDirectory": null funciona para mí: debe colocarse bajo un perfil específico, en lugar de ser un elemento de nivel raíz

@ DHowett-MSFT me parece que un enfoque de tener configuraciones en un archivo de configuración ( startingDirectory ) que se puede anular pasando parámetros de línea de comando es bastante común en general. Tal vez no entiendo el problema aquí :)

Si recuerdo la conversación del mes pasado, fue:

Borrar la configuración de "directorio inicial" eliminándola de su perfil de usuario (en el caso específico de los dos o tres perfiles enviados por defecto), en lugar de configurarla en null para borrarla, no es una función que se eliminará. regresando.

607 especifica que admitiremos argumentos de línea de comando, uno de los cuales será la anulación del directorio inicial.

Esto parece estar en consonancia con mi comprensión de su comprensión de esta conversación. :sonrisa:

Para mí, estableciendo "startDirectory": "." hace el trabajo.

¿Existe otro problema para tener el terminal predeterminado abierto para decir "%USERPROFILE%" pero null si se inicia desde el explorador de Windows?

@carlinmack No creo que sea del todo necesario.

  • La Terminal de Windows tiene como valor predeterminado el directorio de inicio del usuario si lo inicia a través del acceso directo del menú Inicio o escribiendo "wt" en Win + R. Lo que significa que si usa "startingDirectory": "." todavía se abren en la carpeta de inicio del usuario ( %USERPROFILE% ).
  • Si inicia wt desde la barra de direcciones del Explorador de Windows, o mediante algo como cmd.exe (u otro shell) navegó a una carpeta determinada, entonces "startingDirectory": "." garantizará que la Terminal de Windows se abra en el directorio en el que estaba.
  • Sin embargo ... Cualquier pestaña adicional que abra dentro de la sesión de la Terminal de Windows se abrirá en el "directorio de trabajo actual" desde el momento de inicio, lo que puede ser una molestia menor.

La Terminal de Windows tiene como valor predeterminado el directorio de inicio del usuario si lo inicia a través del acceso directo del menú Inicio o escribiendo "wt" en Win + R. Lo que significa que si usa "directorio_inicio": "." todavía se abren en la carpeta de inicio del usuario (% USERPROFILE%).

Por defecto es system32 en ese caso para mí.

Gracias @torpederos

"directorio_inicio": " . "
"directorioinicio": "% __ CD __ %"

Comprobado. Ambos funcionan bien para mí. Mi solucion .

@RickStrahl ha escrito un buen blog sobre este tema. Compruébalo .

En mi caso esto funcionó.

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

"startingDirectory": "." funciona, pero cuando abro el terminal desde la búsqueda, el valor predeterminado es system32.
¿Hay alguna forma de abrir en el directorio de usuarios cuando no se especifica la ruta?

"startingDirectory": "." funciona, pero cuando abro el terminal desde la búsqueda, el valor predeterminado es system32.
¿Hay alguna forma de abrir en el directorio de usuarios cuando no se especifica la ruta?

Yo tuve el mismo problema. Lo arreglé agregando la siguiente línea al final de mi archivo .bashrc.

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

La solución de @manishprivet fue excelente, excepto que para que funcione correctamente, he cambiado system32 a System32 . Es una buena idea ejecutar pwd y copiar la salida.

Encontré una solución al agregar "terminal abierta aquí" para hacer clic con el botón derecho.

paso 1:-
Elimine el directorio de inicio de settings.json para todos los perfiles.

paso 2:-
Agregue la terminal abierta para hacer clic derecho de acuerdo con esta publicación.
https://github.com/microsoft/terminal/issues/1060#issuecomment -497539461
Cambié el segundo valor de registro de @="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe" a @="C:\Users\[your username]\AppData\Local\Microsoft\WindowsApps\wt.exe -d ."

Comportamiento después de modificaciones:
Entonces, cada vez que abro la terminal usando búsqueda / barra de tareas / acceso directo, se abrirá en mi carpeta de usuario.
Siempre que quiero abrir la terminal usando el explorador, simplemente hago clic derecho y selecciono la opción Windows terminal here .

Nota 1: No olvide agregar -d . al final del segundo valor de registro, de lo contrario, esto no funcionará.

Nota 2: Escribir wt en la barra del explorador aún abre la terminal en system32. Aún debe escribir wt -d . si desea abrir el terminal en la carpeta actual usando la "barra del explorador".

Solo agrega

"startingDirectory": null

Funciona correctamente con wt V1.0.

Si prefiere que wt se muestre en el menú SHIFT como "Abrir ventana de PowerShell aquí" o en las opciones Abrir WSL, puede combinar este archivo de registro con su Registro.

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"

Tenga en cuenta que el parámetro startingDirectory debe ir en este lugar en la estructura JSON:

{
    //...

    "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": "."
        }
    }
}

Todavía tengo que ver una solución que haga lo siguiente:

  1. Permítame seleccionar un directorio predeterminado cuando abro Terminal desde el menú de inicio.
  2. Cuando ejecute wt.exe desde la ventana del explorador, se abrirá Terminal en ese directorio.

es posible?

Según mi investigación , eso no era algo técnicamente posible.

Si desea que ambos funcionen, deberá usar wt -d . en la barra de direcciones del explorador. Esto permitirá que el lanzamiento de la Terminal desde el menú de inicio y el cuadro de ejecución funcionen igual que antes, y aún le permitirá abrir la Terminal en el CWD en el explorador

De mi exploración inicial, esto es lo que encontré basado en https://docs.microsoft.com/en-us/windows/terminal/command-line-arguments?tabs=windows

Enfoque 1:

  1. Presione la tecla WIN + R
  2. Escriba wt -d D:\SomeDirectory

Esto abrirá el shell predeterminado presente en settings.json con ese directorio
PD Elija la ruta basada en el sistema operativo del shell de forma predeterminada

Enfoque 2:

  1. Vaya a la carpeta deseada usando el Explorador de archivos
  2. En la barra de direcciones de la carpeta deseada, escriba wt -d .

@AndeYashwanth Eso funciona perfectamente, gracias. Ahora puedo tenerlo abierto en mi directorio de usuario desde la barra de tareas y solo abrirlo en el directorio actual cuando hago clic derecho 😎

Gracias @ 29kartik enfoque 1 funcionó para mí. Pude hacer que GitKraken usara un comando de terminal personalizado de wt -d %d para que ahora su acceso directo a la terminal inicie WT en el directorio del repositorio actual. 💯

Agregué esto para abrir en esta carpeta específica

 "startingDirectory": "C:\\webdev"

Esta es mi opinión a través del acceso directo del menú contextual: https://gist.github.com/kmantel/9cd6bf9f0fb25694a5b08119817281b7

@nickraphael :

Todavía tengo que ver una solución que haga lo siguiente:

  1. Permítame seleccionar un directorio predeterminado cuando abro Terminal desde el menú de inicio.
  2. Cuando ejecute wt.exe desde la ventana del explorador, se abrirá Terminal en ese directorio.

Teniendo esto en settings.json :

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

hace que Windows Terminal se inicie en el directorio actual para mí cuando se inicia desde el cuadro de ubicación del Explorador, win + r o desde otros programas (VS Code, etc.). Sin embargo, al comenzar desde el menú Inicio, ya sea buscando o navegando hasta el acceso directo, comienza en C:\WINDOWS\system32 .

Para solucionar el problema del menú Inicio, fijé un acceso directo a wt.exe en el menú Inicio ( where wt indica su ubicación), cambié el nombre del acceso directo a mi gusto y luego lo modifiqué para tener:

Start in: %USERPROFILE%

Ahora Windows Terminal se inicia en mi directorio de inicio cuando se inicia desde el menú Inicio.

Sería bueno si Windows Terminal no cambiara su directorio por defecto para hacerlo más transparente. No hay muchos otros programas que hagan eso.

También me pregunto si el instalador podría crear automáticamente el acceso directo a wt.exe .

Entonces, ninguna de las respuestas anteriores funcionó para mi caso de uso. Lo que me gustaría hacer es abrir una nueva pestaña usando alt+shift+- y mantener la carpeta anterior. Intenté usar null , "." y "%__CD__%" como valores para "startingDirectory" en diferentes lugares del JSON. Estoy usando la versión 1.4.2652.0 de Windows Terminal Preview.

Una buena solución sería tener una nueva opción como "keepCurrentDirectoryOnNewTab": true o algo así. Otra forma (que usa Kitty) es tener un valor especial llamado current al especificar el directorio.

@frankitox Probablemente esté interesado en # 3158 y similares 20 temas que son engañados en ese hilo
image

Ha habido bastante discusión sobre por qué esto es difícil o casi imposible de hacer correctamente en Windows.

VERSIÓN: 1.3.2651.0

en mi caso funciona.

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

también, puede usar "startingDirectory": "%__CD__%"

Probablemente llegué muy tarde a la fiesta, pero en Windows 10 Pro 20H2, puede escribir wt en la barra de direcciones y funcionará.

¿Cómo se pasa una ruta de directorio a wt.exe? Algo como esto:

wt.exe "C:\GitHub"

No se si encontraste -d y camino

wt -d .

funciona bien en WSL2

¿Fue útil esta página
0 / 5 - 0 calificaciones