Terminal: Ajoutez «ouvrir le terminal Windows ici» dans le menu contextuel du clic droit

Créé le 30 mai 2019  ·  235Commentaires  ·  Source: microsoft/terminal

Ajouter «ouvrir le terminal Windows ici» au menu contextuel du clic droit?

Nous savons que, pour Windows 7, par défaut lorsque nous cliquons sur «Maj + clic droit avec la souris» lorsque nous entrons dans un dossier sans rien sélectionner, nous pouvons voir l'option «ouvrir la fenêtre de commande ici».

image

Alors que pour Windows 10, par défaut, lorsque nous cliquons sur "Maj + clic droit avec la souris", nous pouvons voir l'option "ouvrir la fenêtre PowerShell ici".

Donc, pour Windows 10 (version ultérieure à 1903), comment pouvons-nous rendre les trois options suivantes disponibles dans le menu contextuel du clic droit?

  • ouvrez la fenêtre de commande ici
  • ouvrez la fenêtre PowerShell ici
  • ouvrez le terminal Windows ici

Dans l'attente de votre réponse, merci beaucoup ~

Area-User Interface Help Wanted Issue-Feature Product-Terminal Resolution-Fix-Committed

Commentaire le plus utile

Pour mémoire, je pense que nous préférerions que le terminal enregistre automatiquement ce raccourci au nom de l'utilisateur.

Tous les 235 commentaires

Si vous l'ajoutez, je pense qu'il devrait avoir une autre option de sélection dans le terminal Windows ouvert ici pour sélectionner réellement le shell à ouvrir en tant que sous-menu du menu contextuel (ou comme ça) avec le `` nom '' écrit dans les profils du terminal, comme

  • Powershell
  • CMD
  • Ubuntu

Je pense que c'est une bonne demande de fonctionnalité, et quelque chose sur lequel nous accepterions certainement l'aide de la communauté.

Mon instinct dit que cela serait lié au travail pour # 689, mais je n'en sais pas assez sur Win32 pour être sûr.

C'est probablement quelque chose comme ceci: https://www.codeproject.com/Articles/441/The-Complete-Idiot-s-Guide-to-Writing-Shell-Extens

Mais avec un peu de chance, sans réintroduire ATL dans notre base de code ...

C'est beaucoup plus facile que cela d'ajouter une seule commande au menu contextuel d'un dossier. C'est juste une simple clé de registre.

Par exemple (et vous pouvez également ajouter une icône, etc.)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Open Thing Here\command]
@="C:\\thing.exe \"%1\""

pour les applications pacakged, cela est déclaré dans le manifeste. voir ceci: https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap-filetypeassociation. Je ne pense pas que cela prend en charge les dossiers, mais commencez à chercher ici.

Probablement un double de # 561, mais nous allons le suivre ici.

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak

J'ai résolu le problème maintenant, il pourrait être fermé. Merci beaucoup à tous ceux qui ont participé à cette discussion.

Étape 0:

Testez si les deux constantes ci-dessous fonctionnent bien qui seront utilisées dans les autres étapes suivantes.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Si tout fonctionne bien ici, ces deux constantes peuvent être utilisées directement dans les autres étapes ci-dessous.

Ou veuillez effectuer les remplacements suivants dans les étapes ci-dessous:

% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local

Ici [userName] représente votre nom d'utilisateur , par exemple, le mien est Bruce .

Étape 1:
Exécutez des éléments ci-dessous dans CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image

Étape 2:
Copiez l'icône du terminal Windows dans le dossier %USERPROFILE%\AppData\Local\terminal , l'icône peut être obtenue dans https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons dont le nom de fichier est wt_32.ico .

Étape 3:
Enregistrez le contenu suivant sous le nom wt.reg , puis exécutez-le en tant qu'administrateur.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Pour être noté , si l'exe obtenu après la construction du code par vous-même est wtd.exe , vous devez changer le wt.exe ci-dessus en wtd.exe dans le registre ci-dessus.

Étape 4:
Tester
image

Cela n'a pas fonctionné pour moi (erreur impossible d'y accéder), et pour moi, c'était wtd.exe (ne fonctionnait même pas).
Et je pense que cela pourrait être la fonction Terminal.

@ SJang1
Je suppose que vous avez utilisé la version que vous avez créée vous-même, vous devez donc utiliser wtd.exe . Pour que la version officielle entrante entre dans Windows Store , wt.exe est la bonne option ici. Pour l'instant, vous pouvez obtenir la version préliminaire ici (fichier .7z sous https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal ), puis utiliser wt.exe après l'installation. J'ai adopté cette méthode.

@yanglr J'ai utilisé wtd.exe, et je n'ai pas fonctionné avec une erreur de ne pas pouvoir y accéder. Cependant, chaque utilisateur final ne pouvait pas ajouter au registre un par un.

@ SJang1
Je suppose que vous avez construit le code en Debug mode , veuillez changer en Release mode , voir ci-dessous:
image

@yanglr
Déjà construit en version.
image

Pour mémoire, je pense que nous préférerions que le terminal enregistre automatiquement ce raccourci au nom de l'utilisateur.

@ zadjii-msft
Cool, super!

Cela n'a pas encore été ajouté, donc je préfère que nous gardions ce problème ouvert jusqu'à ce que le travail pour l'ajouter soit terminé :)

Puis-je essayer si personne n'y travaille?

@MelulekiDube foncez !

Mon principal conseil ici serait que nous essayions de garder TerminalApp plus semblable à UWP et de faire des choses comme Win32 dans le projet WindowsTerminal. Étant donné que cette fonctionnalité est probablement assez lourde pour Win32, je suggérerais probablement une sorte d'événement que le App (dans TerminalApp) peut déclencher pour informer le AppHost (dans WindowsTerminal) qu'il doit configurer les raccourcis. Par exemple, je crois qu'il y a un événement TitleChanged que le App peut déclencher pour que le AppHost définisse le titre de la fenêtre.

De plus, comme un Profile n'est pas un type winrt, il peut être difficile d'accéder à ses membres directement à partir du projet WindowsTerminal. Vous devrez peut-être demander au App communiquer les bits pertinents du Profile dans l'événement lui-même. Sinon, vous pouvez essayer d'en faire un type winrt (avec un fichier .idl), mais cela pourrait être un peu plus difficile.

Bonne chance!

EDIT: Je révise cette déclaration pour HERE BE DRAGONS . Il y a du travail à faire dans # 607 / # 1065 avant de pouvoir le faire.

Je crains que cela doive être étroitement lié à la # 607, qui est toujours en phase de pré-spécification.

@ DHowett-MSFT c'est un bon point. J'ai également oublié la récente régression dans # 1065. Cela pourrait en fait tomber dans la catégorie des choses «dures». Même si nous ne le faisions pas par profil, ouvrir le profil par défaut dans le répertoire actuel ne fonctionnerait pas.

Je ne sais même pas comment nous corrigerions # 1065, mais si nous corrigeions cela, nous pourrions théoriquement trouver un moyen de créer la nouvelle instance de Windows Terminal en utilisant le répertoire de l'explorateur, mais cela ne résoudrait pas vraiment le problème - problème de profil. hmmmm.

Pourrait quelque chose comme exposer le staringDirectory afin que vous puissiez le passer dans l'exe une option?

Oui, cela fait partie du point du # 607.

Salut @yanglr ,
Ce n'est pas le bon endroit pour avoir cette discussion. Ce problème concerne la présentation de la fonctionnalité «Ouvrir le terminal Windows ici».

@ DHowett-MSFT
Oh, désolé, supprimé.

Je pense que ce serait formidable d'avoir non seulement «ouvrir le terminal Windows ici», mais aussi «ouvrir le terminal Windows ici (administrateur)» car les deux sont bien utilisés par tout le monde.

Je pensais à ça,
image
..et si cela ressemble à ce que je pensais, il ne semble pas y avoir de place pour l'exécuter en tant qu'administrateur.

Je pensais à ça,
image
..et si cela ressemble à ce que je pensais, il ne semble pas y avoir de place pour l'exécuter en tant qu'administrateur.

... sauf si vous mettez un deuxième menu principal "Open WT here (Administrator)" avec les mêmes éléments de sous-menu. Les deux devraient être facultatifs de toute façon, je pense.

J'ai modifié le registre pour ajouter l'option au menu contextuel. Cependant, il s'ouvre avec C: \ Users \ username au lieu du répertoire actuel.

@minhtuanta

Je crains que cela doive être étroitement lié à la # 607, qui est toujours en phase de pré-spécification.

Pourrait quelque chose comme exposer le staringDirectory afin que vous puissiez le passer dans l'exe une option?

Oui, cela fait partie du point du # 607.

wt.exe ne prend pas encore en charge les arguments de ligne de commande, il n'y a donc aucun moyen de remplacer le dossier dans lequel le nouveau profil commence.

si je peux faire une suggestion, je dirais que les options pour ouvrir dans PowerShell, CMD et / ou Linux devraient être remplacées par «Ouvrir dans le terminal Windows» puisque le terminal Windows est la combinaison des trois. Ensuite, un utilisateur peut définir sa valeur par défaut à partir du fichier profile.json .

@yanglr @lllopo @ SJang1

Quelque chose comme ça devrait fonctionner pour le moment. Je l'ai écrit dans PowerShell parce que c'est pour un script ISO Windows post-installation, mais je ne vois pas de problème avec son utilisation par opposition à un fichier .reg.

PowerShell:

$Env.terminalDir ='$Env:localAppDir\Microsoft\WindowsApps' # Not really needed (except for icon), as wt.exe in in %PATH%

Invoke-WebRequest -UseBasicParsing "https://github.com/yanglr/WindowsDevTools/raw/master/awosomeTerminal/icons/wt_32.ico" -OutFile "$Env:terminalDir\wt.ico"  # Going to update my own to just grab icon from the appx package

Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'MUIVerb' -Type String -Value 'Terminals'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'Icon' -Type String -Value 'PowerShell.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal\\PS'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open\command' -Name '@' -Type String -Value 'wt.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'MUIVerb' -Type String -Value 'Elevated PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'HasLUAShield' -Type String -Value ''
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas\command'-Name '@' -Type String -Value 'wt.exe'

Et quelque chose comme ça devrait fonctionner quand on est capable de choisir entre CMD et PowerShell lors du lancement du terminal (en supposant qu'il utilise --Profile [CMD | PowerShell] ):

Powershell:

$Env.terminalDir ='$Env:localAppDir\Microsoft\WindowsApps'   # Not really needed (except for icon), as wt.exe in in %PATH%

Invoke-WebRequest -UseBasicParsing "https://github.com/yanglr/WindowsDevTools/raw/master/awosomeTerminal/icons/wt_32.ico" -OutFile "$Env:terminalDir\wt.ico"  # Going to update my own to just grab icon from the appx package

Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'MUIVerb' -Type String -Value 'Terminals'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'MUIVerb' -Type String -Value 'Command Prompt'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'Icon' -Type String -Value 'cmd.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal\\CMD'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\open' -Name 'MUIVerb' -Type String -Value 'Command Prompt'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\open' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\open\command' -Name '@' -Type String -Value 'wt.exe --profile CMD'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas' -Name 'MUIVerb' -Type String -Value 'Elevated Terminal'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas' -Name 'HasLUAShield' -Type String -Value ''
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas\command'-Name '@' -Type String -Value 'wt.exe --profile CMD'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'Icon' -Type String -Value 'PowerShell.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal\\PS'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open\command' -Name '@' -Type String -Value 'wt.exe --profile PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'MUIVerb' -Type String -Value 'Elevated PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'HasLUAShield' -Type String -Value ''
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas\command'-Name '@' -Type String -Value 'wt.exe --Profile PowerShell'

@yanglr J'ai suivi vos étapes, le menu du bouton droit apparaît, mais lorsque vous cliquez dessus, explorer.exe dit: "Windows ne peut pas accéder au périphérique, au chemin ou au fichier spécifié. Vous n'avez peut-être pas l'autorisation appropriée pour accéder à l'élément." (Windows ne peut pas Accédez au périphérique, au chemin ou au fichier spécifié. Vous ne disposez peut-être pas des autorisations appropriées pour accéder à l'élément).

L'exécution de «% LOCALAPPDATA% \ Microsoft \ WindowsApps \ wt.exe» à partir de l'invite cmd ouvre le nouveau terminal comme prévu, et j'ai une configuration similaire pour msys, wsl-terminal, tout fonctionne bien, seul le terminal Windows ne fonctionne pas.

@ chen-xin C'est quelque chose qui a fonctionné pour moi pour l'erreur d'accès.
Suivez les mêmes étapes que https://github.com/microsoft/terminal/issues/1060#issuecomment -497539461
Mais, pour le chemin wt.exe , au lieu d'utiliser %LOCALAPPDATA% , utilisez le chemin complet réel comme C:\\Users\\[your_user_acc]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe .

De plus, n'ajoutez pas startingDirectory dans les paramètres.

@saisandeepvaddi Cela a fonctionné sur fullpath, merci!

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak

J'ai résolu le problème maintenant, il pourrait être fermé. Merci beaucoup à tous ceux qui ont participé à cette discussion.

Étape 0:

Testez si les deux constantes ci-dessous fonctionnent bien qui seront utilisées dans les autres étapes suivantes.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Si tout fonctionne bien ici, ces deux constantes peuvent être utilisées directement dans les autres étapes ci-dessous.

Ou veuillez effectuer les remplacements suivants dans les étapes ci-dessous:

% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local

Ici [userName] représente votre nom d'utilisateur , par exemple, le mien est Bruce .

Étape 1:
Exécutez des éléments ci-dessous dans CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image

Étape 2:
Copiez l'icône du terminal Windows dans le dossier %USERPROFILE%\AppData\Local\terminal , l'icône peut être obtenue dans https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons dont le nom de fichier est wt_32.ico .

Étape 3:
Enregistrez le contenu suivant sous le nom wt.reg , puis exécutez-le en tant qu'administrateur.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Pour être noté , si l'exe obtenu après la construction du code par vous-même est wtd.exe , vous devez changer le wt.exe ci-dessus en wtd.exe dans le registre ci-dessus.

Étape 4:
Tester
image

image

J'ai suivi vos instructions mais cette erreur se produit partout où je démarre le terminal _Windows ici_

@Villivateur avez-vous essayé https://github.com/microsoft/terminal/issues/1060#issuecomment -515134618

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak
J'ai résolu le problème maintenant, il pourrait être fermé. Merci beaucoup à tous ceux qui ont participé à cette discussion.
Étape 0:
Testez si les deux constantes ci-dessous fonctionnent bien qui seront utilisées dans les autres étapes suivantes.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Si tout fonctionne bien ici, ces deux constantes peuvent être utilisées directement dans les autres étapes ci-dessous.
Ou veuillez effectuer les remplacements suivants dans les étapes ci-dessous:
% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local
Ici [userName] représente votre nom d'utilisateur , par exemple, le mien est Bruce .
Étape 1:
Exécutez des éléments ci-dessous dans CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image
Étape 2:
Copiez l'icône du terminal Windows dans le dossier %USERPROFILE%\AppData\Local\terminal , l'icône peut être obtenue dans https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons dont le nom de fichier est wt_32.ico .
Étape 3:
Enregistrez le contenu suivant sous le nom wt.reg , puis exécutez-le en tant qu'administrateur.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Pour être noté , si l'exe obtenu après la construction du code par vous-même est wtd.exe , vous devez changer le wt.exe ci-dessus en wtd.exe dans le registre ci-dessus.
Étape 4:
Tester
image

image

J'ai suivi vos instructions mais cette erreur se produit partout où je démarre le terminal _Windows ici_

Comme @saisandeepvaddi métionné,
Pour le chemin wt.exe , au lieu d'utiliser %LOCALAPPDATA% , utilisez le chemin complet réel comme C:\\Users\\[your_user_acc]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe .

De plus, n'ajoutez pas startingDirectory dans les paramètres.

Cela fonctionne bien sur mon PC. Tu peux l'essayer.

J'ai essayé d'ajouter wt.exe au registre, comme décrit précédemment, mais j'ai l'erreur suivante:
image

Le terminal est démarré à partir de la ligne de commande (Win + R | "wt") normalement.

Je pense que la personnalisation du nouveau Terminal est un point fort. Et si c'était dans les paramètres? Dites, "ExplorerIntegration": true . Ensuite, un script batch pourrait les ajouter comme dans le projet FluentTerminal .

Hé, je viens de passer un peu à pirater pour pouvoir ouvrir Windows Terminal dans un dossier de clic droit spécifique, et j'ai pensé que cela pourrait être intéressant / utile pour quelqu'un. Cela semble également fonctionner lorsque vous basculez dans le sous-système Linux, mais pas dans CMD. Vous pouvez également ne pas utiliser le profil PowerShell et utiliser $ env avec un nom légèrement plus agréable pour obtenir une variable à utiliser sur les trois.

En supposant que vous ayez suivi le guide ci-dessus, vous avez besoin de deux fichiers supplémentaires:

C: \ Users \ [Votre nom d'utilisateur] AppData \ Local \ terminal \ launchwt.bat

set wt_powershell_dir=%cd%
start %LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe
exit

C: \ Users \ [Votre nom d'utilisateur] \ Documents \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1

if (Test-Path $env:wt_powershell_dir) {
   cd $env:wt_powershell_dir
   Remove-Item Env:\wt_powershell_dir
}

Vous devrez également accéder à la clé de registre que vous avez installée et mise à jour pour qu'elle pointe vers le fichier de commandes:

Computer\HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command

C:\Users\[Your Username]\AppData\Local\terminal\launchwt.bat

Jusqu'à présent, cela a été amusant de jouer avec le terminal, merci beaucoup 😄.

@minhtuanta Essayez de supprimer startingDirectory dans les paramètres. 😊

Supprimer startingDirectory fonctionne pour moi. Quel cadre sournois 😛

Comme alternative au menu clic droit (travail impressionnant jusqu'à présent): si vous mettez en surbrillance la barre d'adresse de votre répertoire actuel en appuyant sur ctrl+l ou en cliquant dessus puis en tapant wt.exe , le terminal Windows s'ouvrira votre shell par défaut dans ce répertoire.

@kaeside veut

Vous pouvez obtenir la vraie icône du repo dans github

@kaeside Je ne sais pas quelle version vous utilisez, mais j'ouvre toujours l'invite de commande de cette façon (Alt + D, entrez cmd ) et il s'ouvre dans le répertoire de travail actuel, mais dans le cas du terminal Windows, il s'ouvre toujours dans le Annuaire des utilisateurs.
Au moins pour Version: 0.3.2171.0

Oui, c'est à cause de startingDirectory , qui est mentionné dans un certain nombre d'autres commentaires de ce fil. Le correctif est # 607, qui est également mentionné.

J'ai essayé d'ajouter wt.exe au registre, comme décrit précédemment, mais j'ai l'erreur suivante:
image

Le terminal est démarré à partir de la ligne de commande (Win + R | "wt") normalement.

Dans mon cas, wt.exe se trouve dans C:\Users\[your_user_name]\AppData\Local\Microsoft\WindowsApps\ .
Et vous pouvez vérifier chaque élément de votre variable d'environnement% PATH%.

J'ai récemment mis à jour le terminal Windows vers la version: 0.5.2661.0.
Soudain, le menu contextuel "ouvrir le terminal Windows ici" démarre toujours sur C:\Users\[username] , même si le fichier profiles.json ne contient pas "startingDirectory".

La solution à ce problème pour moi a été d'ajouter "startingDirectory": "." dans profiles.json.
J'espère que cela aidera quelqu'un avec un problème similaire.

Un fichier de commandes qui résout les problèmes avec la solution de @yanglr . En particulier, la raison pour laquelle les variables d'environnement ne fonctionnaient pas est que les chaînes les contenant doivent être ajoutées en tant que REG_MULTI_SZ, et non REG_SZ par défaut.

<strong i="7">@echo</strong> off

reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt" /f /ve /d "Windows Terminal here"
reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt" /f /v "Icon" /t REG_EXPAND_SZ /d "\"%%USERPROFILE%%\Downloads\terminal.ico\""

reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command" /f /ve /t REG_EXPAND_SZ /d "\"%%LOCALAPPDATA%%\Microsoft\WindowsApps\wt.exe\""

pause

Videz ce qui précède dans un fichier .bat, personnalisez l'emplacement de l'icône pour goûter, enregistrez et exécutez en tant qu'administrateur , profitez-en. Et n'oubliez pas le commentaire de @rendrap sur la modification du profil startingDirectory en . pour que cela fonctionne comme prévu.

@IanKemp bien maintenant les variables d'environnement fonctionnent grâce, mais depuis la dernière mise à jour de l'App Store, il ne s'ouvre pas dans le répertoire, avez-vous une solution pour cela?

@poqdavid Je vous suggère de lire le commentaire de @rendrap , comme je l'ai suggéré.

J'ai donc le clic droit "Ouvrir le terminal Windows ici", mais je ne sais pas comment le faire fonctionner en tant qu'administrateur. J'ai essayé d'utiliser runas dans le registre ainsi que le verbe runas, sans succès.

Cependant, si j'appuie sur la touche Windows -> tapez Terminal -> cliquez sur "Exécuter en tant qu'administrateur", j'obtiens un terminal Windows en tant qu'administrateur, donc c'est certainement possible.

Quelle est la sauce secrète pour configurer l'environnement de WT afin qu'il démarre en tant qu'administrateur?

@IanKemp Si vous travaillez principalement avec PowerShell, vous pouvez essayer sudo . Ce script vous permet d'exécuter des commandes en tant qu'administrateur dans une fenêtre PowerShell non élevée.

Voici mon fichier que j'utilise, il n'ouvre pas le chemin mais il a au moins l'air sympa:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%ProgramFiles%\\WindowsApps\\Microsoft.WindowsTerminal_0.5.2681.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"Extended"=""

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


[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows terminal here"
"Icon"="%ProgramFiles%\\WindowsApps\\Microsoft.WindowsTerminal_0.5.2681.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"Extended"=""

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

EDIT: Comme mentionné ci-dessus, définissez votre répertoire de démarrage sur "." dans votre profiles.json

"startingDiretory" : ".",

J'utilise Windows Terminal avec Ubuntu WSL
Y a-t-il un moyen de faire en sorte que si j'utilise "Windows terminal here", il s'ouvre dans le répertoire dans lequel je suis, mais si je démarre juste Windows Terminal normalement, il me laisse tomber dans Ubuntu ~?

Le faire me déposer dans la maison Ubuntu par défaut était relativement facile à faire comme ceci:
"commandline" : "wsl.exe ~ -d Ubuntu-18.04"
mais l'ajout de "startingDirectory": "." n'apporte naturellement pas le résultat attendu pour le raccourci du menu contextuel. Sans le ~ dans le commandline il génère un shell dans /mnt/c/Windows/System32

Voici un extrait de mon fichier de paramètres:

    "defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}",
    "profiles":
    [
        {
            "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
            "name": "Ubuntu",
            // ... SNIPP
            //"startingDirectory" : "\\\\wsl$\\Ubuntu\\home\\andre",
            "startingDirectory" : ".",
            // ... SNIPP
        },
        // ... SNIPP
    ]

Celui-ci ouvre le répertoire dans lequel vous utilisez lorsque vous utilisez Windows terminal here . Mais ouvrira /mnt/c/Windows/System32 lorsque le terminal est ouvert normalement. Mon moi n'a pas résolu ce problème éther.
Comme vous pouvez le voir, j'ai également défini le répertoire personnel plus tôt avant de commencer à utiliser "."

@zambelly Pas actuellement. Ce scénario nécessiterait probablement la correction de # 878 pour pouvoir prendre en charge.

J'ai donc le clic droit "Ouvrir le terminal Windows ici", mais je ne sais pas comment le faire fonctionner en tant qu'administrateur. J'ai essayé d'utiliser runas dans le registre ainsi que le verbe runas, sans succès.

Cependant, si j'appuie sur la touche Windows -> tapez Terminal -> cliquez sur "Exécuter en tant qu'administrateur", j'obtiens un terminal Windows en tant qu'administrateur, donc c'est certainement possible.

Quelle est la sauce secrète pour configurer l'environnement de WT afin qu'il démarre en tant qu'administrateur?

@IanKemp Vous pouvez essayer de cette façon en changeant la valeur de command sous la clé de registre runas :
cmd.exe /s /c pushd "%V" & start wt.exe

Bien que ce soit un peu détourné, au moins cela fonctionne pour moi.

y a-t-il un moyen, s'il y a déjà une instance de wt.exe en cours d'exécution, d'ajouter à la place un onglet?
Et y a-t-il un moyen de spécifier le profil du nouvel onglet?

J'ai essayé d'ajouter wt.exe au registre, comme décrit précédemment, mais j'ai l'erreur suivante:
image

Le terminal est démarré à partir de la ligne de commande (Win + R | "wt") normalement.

Même problème de ma part, je ne sais pas comment le résoudre. Fichier de registre comme suit:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"


[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt.ico"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Vous devez avoir un chemin absolu et ne pas utiliser de variable
voir: https://github.com/microsoft/terminal/issues/1060#issuecomment -536322970

J'ai l'impression que c'est la raison pour laquelle je n'utilise plus Terminal, car la façon dont j'ouvre l'invite de commande provient à 80% de l'Explorateur de fichiers. Le reste vient de Win + R + cmd + Enter, et je viens d'apprendre l'alias wt , donc ça va aider.

Lorsque cela est fait, il y aurait une excellente occasion de l'exposer dans les paramètres ainsi que là où ils ont le commutateur PowerShell / CMD:

image

Ce serait génial d'avoir simplement la possibilité de sélectionner le shell préféré dans une liste déroulante et d'avoir Terminal en option s'il est installé.

@ michael-hawker ce que vous cherchez vraiment ici est # 492 😁

J'ai automatisé l'ensemble du processus dans un fichier chauve-souris que vous devez exécuter en tant qu'administrateur.
Ajouter le terminal Windows au menu contextuel.zip
Vous devez toujours modifier le répertoire de départ dans profiles.json en "startingDirectory" : ".",

@ Restia666Ashdoll qui ne semble pas obtenir le .ico correctement

Fonctionne ici cependant
image

Essaye ça. Ouvrez l'emplacement du fichier terminal.ico. Maintenant, allez dans la barre d'adresse et tapez "cmd".
Maintenant, dans l'invite de commande, entrez la commande suivante
xcopy "terminal.ico" "%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\" /b /v /y /q

Ne marche pas

Ouvrez simplement "% LOCALAPPDATA% \ Packages \ Microsoft.WindowsTerminal_8wekyb3d8bbwe \ LocalState" et copiez manuellement le fichier ico puis

Oui, je l'ai fait mais le problème est que la clé de registre ne récupère pas le ico

J'ai automatisé l'ensemble du processus dans un fichier chauve-souris que vous devez exécuter en tant qu'administrateur.
Ajouter le terminal Windows au menu contextuel.zip
Vous devez toujours modifier le répertoire de départ dans profiles.json en "startingDiretory" : ".",

Attention: il y a une faute de frappe, devrait utiliser "startingDirectory" : "." place.

qu'en est-il de la clé HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\wt ? Il n'a pas besoin de l'autorisation d'administrateur

qu'en est-il de la clé HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\wt ? Il n'a pas besoin de l'autorisation d'administrateur

Ce n'est que pour l'utilisateur actuel.

@ Restia666Ashdoll et @musm , déconnectez-vous et reconnectez-vous après avoir copié le fichier ico dans le dossier LocalAppData. L'icône apparaîtra alors.

image

@edrohler Pourquoi me citez-vous? Je n'ai pas ce problème.

@Horacehxw c'est seulement si c'est la dernière entrée.

@ Restia666Ashdoll Je vous ai cité en pensant que vous voudrez peut-être partager les informations avec votre script batch si quelqu'un d'autre le demande. :)

se déconnecter et se reconnecter

@edrohler Utilisez le gestionnaire de tâches pour redémarrer explorer.exe suffit.
Lorsque vous avez au moins 1 dossier ouvert, le gestionnaire de tâches affichera Redémarrer pour celui-ci dans la position normale de Fin de tâche (dans la première page, pas dans les détails du processus)

@Horacehxw c'est seulement si c'est la dernière entrée.

Le problème n'est pas la virgule à la fin, mais l'orthographe de "Directory". Le précédent manque "c".

J'ai automatisé l'ensemble du processus dans un fichier chauve-souris que vous devez exécuter en tant qu'administrateur.
Ajouter le terminal Windows au menu contextuel.zip
Vous devez toujours modifier le répertoire de départ dans profiles.json en "startingDirectory" : ".",

J'ai essayé ceci, mais deux problèmes: il y a maintenant startingDirectory dans profile.json:


// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation

{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",

    "profiles":
    [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "name": "cmd",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        },
        {
            "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
            "hidden": false,
            "name": "Ubuntu-18.04",
            "source": "Windows.Terminal.Wsl"
        }
    ],

    // Add custom color schemes to this array
    "schemes": [],

    // Add any keybinding overrides to this array.
    // To unbind a default keybinding, set the command to "unbound"
    "keybindings": []
}

Un autre problème est que le terminal ne va pas réellement au bon chemin `` ici '', il ne démarre que sur mon chemin utilisateur

J'ai automatisé l'ensemble du processus dans un fichier chauve-souris que vous devez exécuter en tant qu'administrateur.
Ajouter le terminal Windows au menu contextuel.zip
Vous devez toujours modifier le répertoire de départ dans profiles.json en "startingDiretory" : ".",

Attention: il y a une faute de frappe, devrait utiliser "startingDirectory" : "." place.

Cela fonctionne très bien si vous avez raison et ouvrez ici ...
Le seul problème que j'ai remarqué est que si vous ouvrez le terminal normalement ... le répertoire par défaut est system32 ... y a-t-il un moyen de remplacer et de le faire utiliser le dossier utilisateur lorsqu'il est ouvert normalement par hasard?

J'ai automatisé l'ensemble du processus dans un fichier chauve-souris que vous devez exécuter en tant qu'administrateur.
Ajouter le terminal Windows au menu contextuel.zip
Vous devez toujours modifier le répertoire de départ dans profiles.json en "startingDirectory" : ".",

J'ai essayé ceci, mais deux problèmes: il y a maintenant startingDirectory dans profile.json:


// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation

{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",

    "profiles":
    [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "name": "cmd",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        },
        {
            "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
            "hidden": false,
            "name": "Ubuntu-18.04",
            "source": "Windows.Terminal.Wsl"
        }
    ],

    // Add custom color schemes to this array
    "schemes": [],

    // Add any keybinding overrides to this array.
    // To unbind a default keybinding, set the command to "unbound"
    "keybindings": []
}

Un autre problème est que le terminal ne va pas réellement au bon chemin `` ici '', il ne démarre que sur mon chemin utilisateur

Voici mon profil si vous êtes intéressé

{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "globals" : 
    {
        "alwaysShowTabs" : true,
        "defaultProfile" : "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        "disabledProfileSources": [
        "Windows.Terminal.Azure"
    ],
        "initialCols" : 120,
        "initialRows" : 30,
        "keybindings" : 
        [
            {
                "command" : "closePane",
                "keys" : 
                [
                    "ctrl+shift+w"
                ]
            },
            {
                "command" : "copy",
                "keys" : 
                [
                    "ctrl+shift+c"
                ]
            },
            {
                "command" : "duplicateTab",
                "keys" : 
                [
                    "ctrl+shift+d"
                ]
            },
            {
                "command" : "newTab",
                "keys" : 
                [
                    "ctrl+shift+t"
                ]
            },
            {
                "command" : "newTabProfile0",
                "keys" : 
                [
                    "ctrl+shift+1"
                ]
            },
            {
                "command" : "newTabProfile1",
                "keys" : 
                [
                    "ctrl+shift+2"
                ]
            },
            {
                "command" : "newTabProfile2",
                "keys" : 
                [
                    "ctrl+shift+3"
                ]
            },
            {
                "command" : "newTabProfile3",
                "keys" : 
                [
                    "ctrl+shift+4"
                ]
            },
            {
                "command" : "newTabProfile4",
                "keys" : 
                [
                    "ctrl+shift+5"
                ]
            },
            {
                "command" : "newTabProfile5",
                "keys" : 
                [
                    "ctrl+shift+6"
                ]
            },
            {
                "command" : "newTabProfile6",
                "keys" : 
                [
                    "ctrl+shift+7"
                ]
            },
            {
                "command" : "newTabProfile7",
                "keys" : 
                [
                    "ctrl+shift+8"
                ]
            },
            {
                "command" : "newTabProfile8",
                "keys" : 
                [
                    "ctrl+shift+9"
                ]
            },
            {
                "command" : "nextTab",
                "keys" : 
                [
                    "ctrl+tab"
                ]
            },
            {
                "command" : "openSettings",
                "keys" : 
                [
                    "ctrl+,"
                ]
            },
            {
                "command" : "paste",
                "keys" : 
                [
                    "ctrl+shift+v"
                ]
            },
            {
                "command" : "prevTab",
                "keys" : 
                [
                    "ctrl+shift+tab"
                ]
            },
            {
                "command" : "scrollDown",
                "keys" : 
                [
                    "ctrl+shift+down"
                ]
            },
            {
                "command" : "scrollDownPage",
                "keys" : 
                [
                    "ctrl+shift+pgdn"
                ]
            },
            {
                "command" : "scrollUp",
                "keys" : 
                [
                    "ctrl+shift+up"
                ]
            },
            {
                "command" : "scrollUpPage",
                "keys" : 
                [
                    "ctrl+shift+pgup"
                ]
            },
            {
                "command" : "switchToTab0",
                "keys" : 
                [
                    "ctrl+alt+1"
                ]
            },
            {
                "command" : "switchToTab1",
                "keys" : 
                [
                    "ctrl+alt+2"
                ]
            },
            {
                "command" : "switchToTab2",
                "keys" : 
                [
                    "ctrl+alt+3"
                ]
            },
            {
                "command" : "switchToTab3",
                "keys" : 
                [
                    "ctrl+alt+4"
                ]
            },
            {
                "command" : "switchToTab4",
                "keys" : 
                [
                    "ctrl+alt+5"
                ]
            },
            {
                "command" : "switchToTab5",
                "keys" : 
                [
                    "ctrl+alt+6"
                ]
            },
            {
                "command" : "switchToTab6",
                "keys" : 
                [
                    "ctrl+alt+7"
                ]
            },
            {
                "command" : "switchToTab7",
                "keys" : 
                [
                    "ctrl+alt+8"
                ]
            },
            {
                "command" : "switchToTab8",
                "keys" : 
                [
                    "ctrl+alt+9"
                ]
            }
        ],
        "requestedTheme" : "system",
        "showTabsInTitlebar" : true,
        "showTerminalTitleInTitlebar" : true,
        "wordDelimiters" : " ./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}~?\u2502"
    },
    "profiles" : 
    [
        {
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "powershell.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
            "name" : "Windows PowerShell",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "cmd.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
            "name" : "Command Prompt",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& msys2 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\msys2.ico",
            "name" : "MSYS2",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& mingw64 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\mingw64.ico",
            "name" : "MinGW64",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {         
            "guid": "{a5a97cb8-8961-5535-816d-772efe0c6a3f}",
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "hidden": false,
            "name": "Arch",
            "icon" : "%SCOOP%\\apps\\archwsl\\current\\arch.ico",
            "source": "Windows.Terminal.Wsl",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {        
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "\"%SCOOP%\\apps\\git-with-openssh\\current\\bin\\bash.exe\" -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\git-with-openssh\\current\\mingw64\\share\\git\\git-for-windows.ico",
            "name" : "Git Bash",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        }
    ],
        {
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "powershell.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
            "backgroundImage" : "ms-appdata:///local/1537295612521.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "Windows PowerShell",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "cmd.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
            "backgroundImage" : "ms-appdata:///local/1503827082075.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "Command Prompt",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& msys2 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\msys2.ico",
            "backgroundImage" : "ms-appdata:///local/1504637576364.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "MSYS2",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& mingw64 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\mingw64.ico",
            "backgroundImage" : "ms-appdata:///local/704387.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "MinGW64",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {         
            "guid": "{a5a97cb8-8961-5535-816d-772efe0c6a3f}",
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "hidden": false,
            "name": "Arch",
            "icon" : "%SCOOP%\\apps\\archwsl\\current\\arch.ico",
            "backgroundImage" : "ms-appdata:///local/1507634976184.jpg",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "source": "Windows.Terminal.Wsl",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {        
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "\"%SCOOP%\\apps\\git-with-openssh\\current\\bin\\bash.exe\" -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\git-with-openssh\\current\\mingw64\\share\\git\\git-for-windows.ico",
            "backgroundImage" : "ms-appdata:///local/1496315646560.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "Git Bash",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        }
    ],
    "schemes" : 
    [
        {
            "background":"#000000",
            "black":"#000000",
            "blue":"#2980b9",
            "brightBlack":"#7f8c8d",
            "brightBlue":"#3498db",
            "brightCyan":"#1abc9c",
            "brightGreen":"#2ecc71",
            "brightPurple":"#9b59b6",
            "brightRed":"#e74c3c",
            "brightWhite":"#ecf0f1",
            "brightYellow":"#f1c40f",
            "cyan":"#16a085",
            "foreground":"#ecf0f1",
            "green":"#27ae60",
            "name":"flat-ui-v1",
            "purple":"#8e44ad",
            "red":"#c0392b",
            "white":"#ecf0f1",
            "yellow":"#f39c12"
        },
        {
            "background" : "#0C0C0C",
            "black" : "#0C0C0C",
            "blue" : "#0037DA",
            "brightBlack" : "#767676",
            "brightBlue" : "#3B78FF",
            "brightCyan" : "#61D6D6",
            "brightGreen" : "#16C60C",
            "brightPurple" : "#B4009E",
            "brightRed" : "#E74856",
            "brightWhite" : "#F2F2F2",
            "brightYellow" : "#F9F1A5",
            "cyan" : "#3A96DD",
            "foreground" : "#CCCCCC",
            "green" : "#13A10E",
            "name" : "Campbell",
            "purple" : "#881798",
            "red" : "#C50F1F",
            "white" : "#CCCCCC",
            "yellow" : "#C19C00"
        },
        {
            "background" : "#000000",
            "black" : "#000000",
            "blue" : "#000080",
            "brightBlack" : "#808080",
            "brightBlue" : "#0000FF",
            "brightCyan" : "#00FFFF",
            "brightGreen" : "#00FF00",
            "brightPurple" : "#FF00FF",
            "brightRed" : "#FF0000",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#FFFF00",
            "cyan" : "#008080",
            "foreground" : "#C0C0C0",
            "green" : "#008000",
            "name" : "Vintage",
            "purple" : "#800080",
            "red" : "#800000",
            "white" : "#C0C0C0",
            "yellow" : "#808000"
        },
        {
            "background" : "#282C34",
            "black" : "#282C34",
            "blue" : "#61AFEF",
            "Grey" : "#FFFFFF",
            "darkGrey" : "#FFFFFF",
            "brightBlack" : "#5A6374",
            "brightBlue" : "#61AFEF",
            "brightCyan" : "#56B6C2",
            "brightGreen" : "#98C379",
            "brightPurple" : "#C678DD",
            "brightRed" : "#E06C75",
            "brightWhite" : "#DCDFE4",
            "brightYellow" : "#E5C07B",
            "cyan" : "#56B6C2",
            "foreground" : "#DCDFE4",
            "green" : "#98C379",
            "name" : "One Half Dark",
            "purple" : "#C678DD",
            "red" : "#E06C75",
            "white" : "#DCDFE4",
            "yellow" : "#E5C07B"
        },
        {
            "background" : "#FAFAFA",
            "black" : "#383A42",
            "blue" : "#0184BC",
            "brightBlack" : "#4F525D",
            "brightBlue" : "#61AFEF",
            "brightCyan" : "#56B5C1",
            "brightGreen" : "#98C379",
            "brightPurple" : "#C577DD",
            "brightRed" : "#DF6C75",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#E4C07A",
            "cyan" : "#0997B3",
            "foreground" : "#383A42",
            "green" : "#50A14F",
            "name" : "One Half Light",
            "purple" : "#A626A4",
            "red" : "#E45649",
            "white" : "#FAFAFA",
            "yellow" : "#C18301"
        },
        {
            "background" : "#002B36",
            "black" : "#073642",
            "blue" : "#268BD2",
            "brightBlack" : "#002B36",
            "brightBlue" : "#839496",
            "brightCyan" : "#93A1A1",
            "brightGreen" : "#586E75",
            "brightPurple" : "#6C71C4",
            "brightRed" : "#CB4B16",
            "brightWhite" : "#FDF6E3",
            "brightYellow" : "#657B83",
            "cyan" : "#2AA198",
            "foreground" : "#839496",
            "green" : "#859900",
            "name" : "Solarized Dark",
            "purple" : "#D33682",
            "red" : "#DC322F",
            "white" : "#EEE8D5",
            "yellow" : "#B58900"
        },
        {
            "background" : "#FDF6E3",
            "black" : "#073642",
            "blue" : "#268BD2",
            "brightBlack" : "#002B36",
            "brightBlue" : "#839496",
            "brightCyan" : "#93A1A1",
            "brightGreen" : "#586E75",
            "brightPurple" : "#6C71C4",
            "brightRed" : "#CB4B16",
            "brightWhite" : "#FDF6E3",
            "brightYellow" : "#657B83",
            "cyan" : "#2AA198",
            "foreground" : "#657B83",
            "green" : "#859900",
            "name" : "Solarized Light",
            "purple" : "#D33682",
            "red" : "#DC322F",
            "white" : "#EEE8D5",
            "yellow" : "#B58900"
        }
    ]
}

@ Restia666Ashdoll Merci! cela a fonctionné mais à chaque fois il affiche une fenêtre contextuelle:

Capture

@foremtehan Depuis, vous n'utilisez pas msys2, mingw64, arch et git bash, vous n'en avez pas besoin. Maintenant, essayez ceci dans les profils pour Ubuntu.

        {         
            "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "hidden": false,
            "name": "Ubuntu",
            "source": "Windows.Terminal.Wsl",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        }

Assurez-vous qu'il n'y a pas de virgule dans la section finale du profil

J'ai automatisé l'ensemble du processus dans un fichier chauve-souris que vous devez exécuter en tant qu'administrateur.
Ajouter le terminal Windows au menu contextuel.zip
Vous devez toujours modifier le répertoire de départ dans profiles.json en "startingDiretory" : ".",

Attention: il y a une faute de frappe, devrait utiliser "startingDirectory" : "." place.

Cela fonctionne très bien si vous avez raison et ouvrez ici ...
Le seul problème que j'ai remarqué est que si vous ouvrez le terminal normalement ... le répertoire par défaut est system32 ... y a-t-il un moyen de remplacer et de le faire utiliser le dossier utilisateur lorsqu'il est ouvert normalement par hasard?

Hey! J'ai eu ce problème aussi. Une solution rapide et sale consiste à ajouter une commande cd à votre fichier .bashrc dans le terminal WSL.
echo 'cd ~' >> ~ / .bashrc

Cela va à l'encontre de tout l'objectif de ce thread, car il sera toujours dans le répertoire '~' quel que soit l'endroit où vous ouvrez le terminal. Tapez simplement 'cd ~' après avoir ouvert le terminal dans wsl / msys2 / mingw64 / git bash.

J'ai automatisé l'ensemble du processus dans un fichier chauve-souris que vous devez exécuter en tant qu'administrateur.
Ajouter le terminal Windows au menu contextuel.zip
Vous devez toujours modifier le répertoire de départ dans profiles.json en "startingDiretory" : ".",

Attention: il y a une faute de frappe, devrait utiliser "startingDirectory" : "." place.

Cela fonctionne très bien si vous avez raison et ouvrez ici ...
Le seul problème que j'ai remarqué est que si vous ouvrez le terminal normalement ... le répertoire par défaut est system32 ... y a-t-il un moyen de remplacer et de le faire utiliser le dossier utilisateur lorsqu'il est ouvert normalement par hasard?

Hey! J'ai eu ce problème aussi. Une solution rapide et sale consiste à ajouter une commande cd à votre fichier .bashrc dans le terminal WSL.
echo 'cd ~' >> ~ / .bashrc

Cela va à l'encontre de tout l'objectif de ce thread, car il sera toujours dans le répertoire '~' quel que soit l'endroit où vous ouvrez le terminal. Tapez simplement 'cd ~' après avoir ouvert le terminal dans wsl / msys2 / mingw64 / git bash.

Cela définira également le répertoire de démarrage sur "~" lorsque vous cliquez sur "Ouvrir le terminal Windows ici". Vous pouvez simplement ajouter une condition if.
if [ "$PWD" = "/mnt/c/Windows/System32" ]; then cd ~ fi

@ Restia666Ashdoll et @musm , déconnectez-vous et reconnectez-vous après avoir copié le fichier ico dans le dossier LocalAppData. L'icône apparaîtra alors.

image

Comment avez-vous ajouté l'option "Ouvrir avec code"?

@ Restia666Ashdoll et @musm , déconnectez-vous et reconnectez-vous après avoir copié le fichier ico dans le dossier LocalAppData. L'icône apparaîtra alors.
image

Comment avez-vous ajouté l'option "Ouvrir avec code"?

lorsque vous installez le code, il vous demande si vous souhaitez ajouter un shell ouvert avec l'option de code

Pour ceux qui ont installé le terminal depuis Windows Store, la commande est:

explorer.exe shell:appsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App

Le terminal Windows ajoute également wt.exe au chemin, ce qui rend l'extrait de code sujet aux erreurs ci-dessus redondant.

J'applaudis le travail de tout le monde ici, mais je veux juste fournir une solution plus simple qui est assez bonne pour moi et peut-être pour beaucoup d'entre vous aussi:

PRÉPARATION IMPORTANTE: Dans votre fichier de paramètres Windows Terminal, assurez-vous que le profil de votre shell par défaut contient "startingDirectory": ".", ce qui signifie "démarrer dans le répertoire de travail actuel". (Si vous ignorez cette étape, le Terminal Windows ignorera le répertoire de travail et démarrera toujours dans votre répertoire personnel.)

Maintenant pour les instructions:

  1. Accédez à un dossier amusant dans l'Explorateur!
  2. Appuyez sur Ctrl-L, tapez wt et appuyez sur Entrée. C'est ça! Terminé! Le terminal Windows s'ouvre dans le dossier que vous regardez.

Le texte en gras ci-dessus est l'instruction réelle. Hehe. C'est ça!

Je n'ai pas besoin d'un élément de menu contextuel. Il est assez rare que je doive ouvrir le terminal dans le répertoire actuel, et je suis d' wt avec juste Ctrl-L,

@VideoPlayerCode C'est une excellente solution! Merci beaucoup!

@VideoPlayerCode Merci pour le bon conseil! cela ne résout cependant pas le cas de «exécution en tant qu'administrateur».

Si quelqu'un obtient l'erreur suivante, après avoir utilisé la solution de @yanglr
explorer_error

Vous pouvez utiliser le chemin complet, au lieu de% LOCALAPPDATA%:

Donc au lieu de
[HKEY_CLASSES_ROOT \ Directory \ Background \ shellwtcommand]
@ = "% LOCALAPPDATA% \ Microsoft \ WindowsApps \ wt.exe"

Utilisez (avec votre nom d'utilisateur à la place de 'thull'):
[HKEY_CLASSES_ROOT \ Directory \ Background \ shellwtcommand]
@ = "" C: \ Users \ thullAppData \ Local \ Microsoft \ WindowsAppswt.exe ""

@ ad1tyawagh Heureux que je vous ai aidé! :-)

@lllopo J'adorerais aider mais il semble que "Exécuter en tant qu'administrateur" n'est pas possible sur les applications du Windows Store (j'ai installé Windows Terminal via Chocolatey directement à partir du programme d'installation, mais c'est toujours une application du Windows Store).

Voici ma configuration actuelle:

  • PowerShell est mon shell par défaut.
  • Ma configuration PowerShell contient ces lignes supplémentaires:
function EditProfile { notepad "$profile" }
function GoAdmin { start-process pwsh –verb runAs }

Lorsque vous tapez GoAdmin, une boîte de dialogue des droits d'administrateur apparaît, puis PowerShell démarre en tant qu'administrateur dans une fenêtre shell distincte (non hébergée par le terminal Windows), dans le dossier exact dans lequel vous avez navigué. C'est pratique et me suffit, car je ne l'utilise que pour les packages d'installation / mise à jour chocolatés. Je n'ai pas vraiment besoin de droits d'administrateur pour autre chose.

Mais pour vous, je voulais essayer de l'améliorer pour pouvoir lancer Windows Terminal lui-même en droits d'administrateur. Cependant, cela échoue:

# Works but not admin rights:
function GoAdmin { start-process "$env:LOCALAPPDATA\Microsoft\WindowsApps\wt.exe" }

function GoAdmin { start-process explorer.exe shell:appsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App }

# Fails with "This command cannot be run due to the error: The file cannot be accessed by the system.":
function GoAdmin { start-process "$env:LOCALAPPDATA\Microsoft\WindowsApps\wt.exe" -verb runAs }

# Successfully launches explorer.exe as admin, which in turn launches Windows Terminal as non-admin, meh:
function GoAdmin { start-process explorer.exe shell:appsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App -verb runAs }

Donc, à moins qu'il n'y ait un moyen de corriger l'erreur «Le fichier n'est pas accessible par le système», il n'y a aucun moyen de lancer Windows Terminal en tant qu'administrateur via des scripts PowerShell. Peut-être que quelqu'un trouve un moyen. (Edit: On dirait que l'explication de l'échec du lancement de wt tant qu'administrateur est que Windows Terminal est installé en tant qu'utilisateur non administrateur et ne peut donc pas être trouvé par l'utilisateur administrateur. Du moins, c'est ainsi que je comprends ce message . )

Sinon, j'espère que vous aimez au moins la commande GoAdmin j'ai fournie ici, qui lance avec succès une fenêtre PowerShell séparée en tant qu'administrateur. Cela me suffit pour administrer des packages chocolatés, donc cela ne me dérange pas beaucoup que ce ne soit pas une fenêtre Windows Terminal ... (C'est aussi très utile qu'il n'utilise pas Windows Terminal, car cela signifie les "droits d'administrateur" shell est visuellement différent, ce qui est un bon rappel de ne pas l'utiliser pour le travail régulier, car les droits d'administrateur sont dangereux et se propagent dans tous les programmes que vous lancez via votre shell, ils ne doivent donc pas être utilisés sans précaution.)

PS: remplacez pwsh par powershell si vous utilisez le "Windows PowerShell" intégré obsolète. J'utilise plutôt PowerShell Core 6, depuis https://github.com/PowerShell/PowerShell (installé via choco install powershell-core ).

Un autre conseil: j'ai épinglé le terminal Windows lui-même à la position la plus à gauche de ma barre des tâches. De cette façon, je peux appuyer sur Win + 1 pour le lancer instantanément (ou lui donner le focus s'il est déjà lancé). Très pratique. Cela signifie également que si je veux vraiment que Windows Terminal fonctionne lui-même en tant qu'administrateur, je peux simplement cliquer avec le bouton droit de la souris sur l'icône de la barre des tâches, puis cliquer avec le bouton droit de la souris sur "Terminal Windows" dans le menu qui apparaît et enfin "Exécuter en tant qu'administrateur").

Astuce finale: après avoir défini votre répertoire de démarrage sur ".", Le terminal Windows s'ouvrira toujours dans le dossier system32 si vous le lancez à partir d'un raccourci (par exemple depuis la barre des tâches épinglée ou via le menu Démarrer; mais _pas_ via Win + R ou via l'explorateur ( ces dernières méthodes fonctionnent correctement)). Mais il existe un moyen rapide d'accéder à votre dossier d'accueil: tapez simplement cd et appuyez sur Entrée pour toujours rentrer directement à la maison.

Une autre façon consiste à installer la commande sudo à partir de Scoop
scoop install sudo
http://blog.lukesampson.com/sudo-for-windows
En plus de vous permettre d'exécuter des commandes avec des privilèges élevés, vous pouvez également démarrer une session PowerShell / Invite de commandes élevée avec la commande sudo powershell ou sudo cmd .

@ Restia666Ashdoll Comme mentionné dans ma réponse, il n'y a pas besoin de commandes "sudo" tierces. PowerShell a un "sudo" intégré: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-6#examples

Exemple 5: démarrer PowerShell en tant qu'administrateur

Cet exemple démarre PowerShell à l'aide de l'option «Exécuter en tant qu'administrateur».

Start-Process -FilePath "powershell" -Verb RunAs

J'ai enveloppé cela comme GoAdmin dans mon exemple. Mais quelqu'un pourrait aussi l'envelopper comme une fonction qu'il nomme «sudo» et lui faire prendre n'importe quelle commande.

Par exemple, comme inspiration, je voulais que la commande touch crée facilement des fichiers vides de 0 octet, et je voulais qu'elle prenne plusieurs arguments pour plusieurs fichiers à la fois. J'ai donc écrit cette fonction PowerShell et l'ai mise dans ma configuration pour qu'elle soit toujours disponible:

function touch() { for ($i=0; $i -le $args.length; $i++) { $name = $args[$i]; if ($name -ne $null -and $name.GetType().Name -eq "String") { $name = $name.Trim(); if ($name.length -gt 0) { New-Item -ItemType file "$name" } } } }

Quelque chose de très similaire pourrait être fait si vous vouliez créer une commande générique sudo .

Ou utilisez simplement GoAdmin comme indiqué ci-dessus ...

@VideoPlayerCode Cette commande ne peut être utilisée que pour quelques commandes PowerShell. Vous ne pouvez pas faire quelque chose comme sudo pip install httpie ou sudo Install-Module oh-my-posh -Force . Heck, vous pouvez même utiliser Chocolatey de PowerShell régulier comme sudo choco install mpv (bien que personnellement je n'aime pas Chocolatey). Bien sûr, sudo pour Windows a également des limites.

@ Restia666Ashdoll Merci, vous m'avez poussé à écrire la commande "sudo" que j'ai expliquée ci-dessus. :-)

function sudo() {
    [string[]]$cmd = @("-command")
    for ($i=0; $i -le $args.length; $i++) {
        $val = $args[$i]
        if ($val -ne $null) {
            $cmd += [string]$val;
        }
    }
    if ($cmd.length -ge 2) {
        $cmd += "; pause"
        #Write-Host $cmd
        Start-Process pwsh -ArgumentList $cmd –Verb RunAs
    }
}

_ (Si quelqu'un utilise le powershell régulier et obsolète qui est fourni avec Windows, remplacez le pwsh par powershell ci-dessus.) _

L'exécution de sudo choco install sysinternals dans une session non-admin exécutera désormais cette commande dans une session d'administration.

Notez que le processus de démarrage de PowerShell ne prend pas en charge la génération de sous-shell d'administrateur qui sortent directement dans des shells non-admin "hôte", il s'exécute donc dans une fenêtre contextuelle et s'interrompt pour que vous puissiez lire le résultat avant de fermer cette fenêtre. Suffisant pour moi.

J'ai jeté un coup d'œil à https://github.com/lukesampson/psutils/blob/master/sudo.ps1 (le script que vous avez proposé), mais j'ai eu l'impression que c'était un peu gênant d'appeler les fonctions du noyau pour attacher la sortie d'un administrateur sous-processus dans le terminal en cours d'exécution, et s'inquiéter de la " fuite" de privilèges dangereux dans le processus hôte ou de tous les exploits qui deviennent possibles lorsque l'entrée / la sortie d'un processus d'administration est détenue par un processus non-administrateur (yikes). Il y avait aussi un autre appelé wsudo à https://github.com/noseratio/choco/tree/master/wsudo , mais je ne l'ai pas vraiment examiné en profondeur. Je viens d'écrire ma propre version à la place.

Merci pour la poussée, encore une fois. C'est bien d'avoir une commande pour exécuter rapidement une seule action en tant qu'administrateur. Ma commande GoAdmin publiée plus tôt est toujours très utile pour démarrer une console d'administration distincte qui prend en charge la saisie de plusieurs actions comme d'habitude. Mais exécuter des commandes uniques est maintenant un peu plus facile avec cette nouvelle commande!

PS: Si quelqu'un se demande où placer cette fonction ou toutes mes autres fonctions, tapez simplement Write-Host $Profile (write-host est "echo" dans PowerShell) pour voir le chemin du profil, et créez ce fichier s'il manque, puis mettez les fonctions là-dedans et redémarrez PowerShell.

(Ces fonctions «noyau» sont en fait les API de console officiellement prises en charge par cette équipe, elles se trouvent juste dans une bibliothèque appelée kernel32 (pour des raisons d'héritage.))

@ DHowett-MSFT Ahh. Le code sudo.ps1 de Luke Sampson dit DllImport("kernel32.dll") , mais vous dites que c'est tout à fait correct d'utiliser ces fonctions pour rediriger la sortie du shell d'administration vers le shell actuel?

Pour être franc, il est censé se comporter comme sudo sur les systèmes Unix. Presque tous ceux qui utilisent Scoop l'utilisent. C'est ce que je veux - exécuter une commande avec des privilèges élevés dans le shell actuel. Et c'est ce que tout le monde souhaite, si Microsoft a créé un véritable «sudo pour Windows».

Merci pour l'excellente discussion sur ce sujet! Cela vous dérangerait-il de détourner la discussion sur des choses qui ne sont pas l'option du menu contextuel ailleurs? Pour sudo , nous avons # 1032

Ouais, certaines personnes ont demandé un moyen de "sudo" et les choses ont un peu déraillé. ;-)

@ DHowett-MSFT Désolé, pour être hors sujet. Il vient juste de surgir parce que la perspective de démarrer le terminal en tant qu'administrateur. Je vais arrêter.

Hé, pas de problème! Cela arrive à tout le monde. :sourire:

Voici ma solution
Il agit à peu près de la même manière que PowerShell 7 et peut également fonctionner avec les droits d'administrateur
https://github.com/nt4f04uNd/wt-contextmenu
Vous y trouverez un guide sur la mise en œuvre et tous les fichiers nécessaires

@ nt4f04uNd Pouvez-vous également ajouter scoop install nicrmd à votre guide?
https://github.com/ScoopInstaller/Main/blob/master/bucket/nircmd.json

@ Restia666Ashdoll terminé

Je ne vois pas la nécessité d'un remplacement de l'invite cmd ouverte ici.

Dans la barre d'adresse, cliquez dessus et tapez wt.exe et appuyez sur Entrée. Terminal Windows dans le avec la fenêtre d'exploration actuelle comme CWD.

@ em00k Différentes personnes ont leurs propres flux de travail, et ce n'est pas grave: sourire:

C'est du travail pour moi https://github.com/microsoft/terminal/issues/1060#issuecomment -497539461 et pour résoudre le répertoire initial de mon dossier utilisateur, je crée un raccourci visant mon '% USERPROFILE%' et le mets dans mon menu de démarrage et ma barre des tâches.

Mais ce sera très utile si nous pouvons utiliser un paramètre de dossier pour ouvrir le répertoire dans l'application wt.exe.

image

Voici ce qui a fonctionné pour moi pour la version 0.7.3451.0 (quelques modifications nécessaires au commentaire original de @yanglr )

1) Téléchargez l'icône officielle du terminal Windows et placez-la quelque part
https://raw.githubusercontent.com/microsoft/terminal/master/res/terminal.ico

2) Modifiez la configuration du terminal Windows. Définissez le profil que vous souhaitez ouvrir dans le répertoire actuel par défaut.
Ajouter
"startingDirectory": "."
à ce profil, de sorte que le répertoire courant soit le répertoire de départ

3) Créez et exécutez un fichier wt.reg, avec ce qui suit, en remplaçant les éléments entre accolades par de vrais chemins (en se souvenant des doubles barres obliques).

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal Here"
"Icon"="{full_path_to_icon}\\terminal.ico"

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

(Remplacez HKEY_CLASSES_ROOT par HKEY_CURRENT_USER si vous souhaitez uniquement modifier l'utilisateur actuel)

4) Test. Il devrait ouvrir le répertoire dans lequel vous vous trouvez lorsque vous faites un clic droit.
Je n'ai testé cela qu'avec cmd.exe comme profil par défaut. Je ne sais pas si cela fonctionne pour d'autres types de profil.

Capture

Ouvre un terminal Windows commençant dans le dossier sur lequel j'ai cliqué avec le bouton droit de la souris

Capture

Au moins, changez-le en HKCU pour ne changer que votre propre compte utilisateur

@VideoPlayerCode merci beaucoup d'homme a résolu mon problème avec le terminal Windows

@yangshuairocks Mine ne clignote pas une fois, mais deux fois en faisant cela, puis demande à l'administrateur.

J'aimerais "Ouvrir en tant que nouvel onglet dans le terminal Windows".
Je ne veux pas que mon bureau soit perturbé par de nombreuses fenêtres de terminal.

PS
"startingDirectory": "." fait $PWD du terminal ouvert depuis le menu démarrer ou la barre des tâches C:\Windows\System32 .

Solution simple de tous les commentaires donnés ici: https://github.com/plexcellmedia/open-microsoft-terminal-in-current-directory

En fait, vous n'avez pas besoin d'écrire un chemin complet. Le terminal est présent dans la variable PATH. Appelez simplement la commande wt n'importe où.
Ou vous pouvez appeler l'application UWP elle-même shell:AppsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App

Depuis la sortie de la v0.9.433.0, vous pouvez désormais transmettre des paramètres de ligne de commande, ce qui suit fonctionne avec la prise en charge de plusieurs profils.

wt.reg :

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\wt (Command)]
@="Open Terminal (Command)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Command)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p Command"

[HKEY_CLASSES_ROOT\Directory\shell\wt (PowerShell)]
@="Open Terminal (PowerShell)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (PowerShell)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p PowerShell"

[HKEY_CLASSES_ROOT\Directory\shell\wt (Git Bash)]
@="Open Terminal (Git Bash)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Git Bash)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p \"Git Bash\""

[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Bash)]
@="Open Terminal (Ubuntu Bash)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Bash)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p \"Ubuntu Bash\""

[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Zsh)]
@="Open Terminal (Ubuntu Zsh)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Zsh)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p \"Ubuntu Zsh\""

profiles.json :

{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "defaultProfile": "{e5beb15e-da5c-4df7-815c-b0b0a865ef3f}",
    "initialRows": 50,
    "tabWidthMode": "titleLength",

    "profiles": {
        "defaults": {
            "cursorShape": "filledBox",
            "experimental.retroTerminalEffect": false,
            "fontFace": "Fira Code",
            "fontSize": 10,
            "padding": "2, 2, 2, 2",
            "suppressApplicationTitle": true
        },
        "list": [
            {
                "backgroundImage": "ms-appdata:///local/ubuntu.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "wsl.exe -d Ubuntu-18.04 --exec zsh --login",
                "colorScheme": "Solarized Dark",
                "guid": "{e5beb15e-da5c-4df7-815c-b0b0a865ef3f}",
                "icon": "ms-appdata:///local/ubuntu.png",
                "name": "Ubuntu Zsh",
                "startingDirectory": "//wsl$/Ubuntu-18.04/home/sean",
                "tabTitle": "Zsh"
            },
            {
                "backgroundImage": "ms-appdata:///local/ubuntu.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "wsl.exe -d Ubuntu-18.04 --exec bash --login",
                "colorScheme": "Solarized Dark",
                "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
                "icon": "ms-appdata:///local/ubuntu.png",
                "name": "Ubuntu Bash",
                "source": "Windows.Terminal.Wsl",
                "startingDirectory": "//wsl$/Ubuntu-18.04/home/sean",
                "tabTitle": "Bash"
            },
            {
                "backgroundImage": "ms-appdata:///local/git-for-windows.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "C:\\Program Files\\Git\\bin\\bash.exe --login",
                "colorScheme": "Solarized Dark",
                "guid": "{78ccd05e-83d4-46c6-9a80-8865ff8ff720}",
                "icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico",
                "name": "Git Bash",
                "startingDirectory": "%USERPROFILE%",
                "tabTitle": "Bash"
            },
            {
                "backgroundImage": "ms-appdata:///local/powershell.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "powershell.exe",
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "PowerShell",
                "tabTitle": "PS"
            },
            {
                "commandline": "cmd.exe",
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "Command",
                "tabTitle": "Cmd"
            },
            {
                "acrylicOpacity": 0.9,
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "name": "Azure Shell",
                "source": "Windows.Terminal.Azure",
                "tabTitle": "Bash",
                "useAcrylic": true
            },
            {
                "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
                "hidden": false,
                "name": "PowerShell Core",
                "source": "Windows.Terminal.PowershellCore"
            }
        ]
    },

    "schemes": [],

    "keybindings": []
}

@DHowett, il

@gitfool et celui-là est suivi par # 4472: sourire:

Vous pouvez le rendre légèrement plus robuste en utilisant %1\. au lieu de seulement %1 - pour le moment, si vous l'ouvrez à la racine d'un lecteur, il ne fera pas ce que vous attendez . C'est # 4571

Je ne sais pas pourquoi, mais @gitfool reg ne l'a pas fait pour moi. Si je passe %V cela fonctionne, par exemple

C:\Users\islevin\AppData\Local\Microsoft\WindowsApps\wt -p "cmd" -d "%V"

Excellent travail les gars, c'est presque parfait pour moi :)

Les entrées du menu contextuel sont excellentes, elles ouvrent le dossier attendu, super. Cependant, je lance directement Windows Terminal (à partir du menu Démarrer, par exemple), le répertoire de départ est mon dossier d'accueil Windows.

Est-il possible de définir cette valeur par défaut dans mon dossier de base WSL à la place, sans casser l'entrée du menu contextuel?

@rfgamaral voir mon profile.json ci-dessus. Étant donné une startingDirectory par défaut de

@gitfool C'est ce que j'ai mais ça ne marche pas pour moi:

{
  "guid": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
  "name": "Debian (WSL)",
  "commandline": "wsl.exe -d Debian --exec zsh --login",
  "startingDirectory": "//wsl$/Debian/home/ricardo",
  "acrylicOpacity": 1.0,
  "colorScheme": "Flat UI (tweaked)",
  "fontSize": 10,
  "hidden": false,
  "padding": "3, 2",
  "useAcrylic": true
}

@rfgamaral Je ne vois rien de mal avec votre configuration. Votre répertoire de base WSL existe-t-il ou utilisez-vous un profil différent lorsque vous lancez directement Terminal?

Oui:

image

Non, je n'ai que ce profil WSL.

@rfgamaral le système de fichiers Linux est sensible à la casse, donc votre profil startingDirectory doit être //wsl$/Debian/home/Ricardo .

@rfgamaral le système de fichiers Linux est sensible à la casse, donc votre profil startingDirectory doit être //wsl$/Debian/home/Ricardo .

Génial, cela l'a corrigé! Merci beaucoup :)

Peut-être que cela est hors de portée de ce problème, ou peut-être pas, je le demanderai quand même ... En supposant la configuration ci-dessus décrite par @gitfool , j'ai ce dossier Windows C:\Users\Ricardo\Workspace et puis j'ai un lien symbolique à l'intérieur du WSL comme ~/ Workspace -> /c/Users/AmaralR/Workspace/ .

Ce serait cool si un clic droit sur le dossier Workspace dans l'explorateur ouvrait ~/Workspace au lieu de /c/Users/AmaralR/Workspace/ ? Pensez-vous que cela soit possible à distance?

Il y a un problème pour moi. La commande de clic Rick n'apparaît que lorsque je clique avec le bouton droit sur des dossiers. Cependant, lorsque je clique avec le bouton droit sur un espace vide dans un dossier, l'entrée du terminal n'apparaît pas (voir gif), bien que VS Code et ma distribution WSL par défaut (Pengwin) apparaissent. J'ai mis Terminal, VS Code et Pengwin en mode Extended Shell (en maintenant Shift).

GIF

Ma configuration actuelle:
`` Éditeur du registre Windows version 5.00

[HKEY_CLASSES_ROOT \ Directory \ shellwt]
@ = "Ouvrez le terminal ici
"Extended" = ""
"Icon" = "D: \ OneDrive \ _Apps \ .config \ .icons \ terminal.ico"

[HKEY_CLASSES_ROOT \ Directory \ shellwtcommand]
@ = "C: \ Users \ steve \ AppData \ Local \ Microsoft \ WindowsApps \ wt.exe new-tab -d"% 1 "-p" Pengwin "" `` `

@Kalaschnik Vous aurez également besoin d'une entrée dans HKCR \ Directory \ Background \ Shell \ WindowsTerminalHere

Voir https://github.com/shanselman/WindowsTerminalHere/pull/3/files

Lorsque j'essaye de lancer un onglet cmd dans le terminal, je reçois

[erreur 0x8007010b lors du lancement de «cmd.exe»]

Il y a un problème pour moi. La commande de clic Rick n'apparaît que lorsque je clique avec le bouton droit sur des dossiers.

Je ne sais pas quel est le problème qui en est la cause, mais vous pouvez consulter ce référentiel pour le rendre plus semblable à PowerShell

Gif demo

Salut à tous,
J'implémente un script simple pour ajouter un menu contextuel.
Cela fonctionne pour moi avec la version 0.9.433.0 du terminal Windows

Merci @ nt4f04uNd et autres qui

Repo: menu contextuel du terminal Windows

Salut à tous,
J'implémente un script simple pour ajouter un menu contextuel.
Cela fonctionne pour moi avec la version 0.9.433.0 du terminal Windows

Merci @ nt4f04uNd et autres qui

Repo: menu contextuel du terminal Windows

C'est vraiment super !!! cependant peu de notes:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
vous devez définir-ExecutionPolicy sur Unrestricted pour l'exécuter.

En outre, cela semble cassé:

Copy-Item : The filename, directory name, or volume label syntax is incorrect.
At D:\Jeff\Documents\Windows-terminal-context-menu\SetupContextMenu.ps1:25 char:1
+ Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand

this dir needs to be created either prior to or as part of the execution:
$env:LOCALAPPDATA\WindowsTerminalContextIcons\

En outre, il dit:

PS D:\Jeff\Documents\Windows-terminal-context-menu> .\SetupContextMenu.ps1
Add top layer menu (shell) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add top layer menu (background) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add new entry Git Bash
Add new entry Command Prompt
Add new entry PowerShell
Add new entry Azure Cloud Shell

mais ne le crée pas vraiment correctement (ses icônes manquantes et mon Git Bash sont manquants car je n'ai pas la clé cachée):
image

Ajouté ceci sous les définitions globales:
$gitbashIcoFileName = "git-bash.ico"

et ceci après la ligne 101:

        elseif ($commandLine -like "*Git*bash.exe*") {
            $icoPath = $gitbashIcoFileName
        }

On dirait que cela n'aime tout simplement pas charger les icônes à partir de:
% LOCALAPPDATA% \ WindowsTerminalContextIcons \
... parce que cela semble correct dans la clé de registre.

Au lieu de cela, j'ai changé cette ligne en:
$resourcePath = "$PSScriptRoot\icons\"

et supprimé:
Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePath

Le problème est que si le dossier n'existe pas, les icônes ne sont pas copiées, il suffit d'ajouter mkdir $resourcePath avant que l'élément de copie ne résout ce bit. J'ai créé un problème sur votre repo pour cela. En outre, il semble y avoir un problème avec l'analyse du profil dans certains scénarios. Quoi qu'il en soit, merci pour le script!

Salut @Nomelas

Merci pour votre réponse.
J'ai résolu le problème concernant l'icône manquante. Réinstallez-le simplement et reconnectez-vous.
Je ne préfère pas définir $ resourcePath sur l'emplacement du script. Parce que l'utilisateur peut supprimer le dossier du programme d'installation pour une raison quelconque, puis l'icône manquera à nouveau.

La deuxième chose, pourriez-vous partager votre profil git bash? Parce que je ne suis pas réglé Git-bash sur mon WT.
J'ai besoin d'un modèle pour définir la règle.

Salut @Nomelas

Merci pour votre réponse.
J'ai résolu le problème concernant l'icône manquante. Réinstallez-le simplement et reconnectez-vous.
Je ne préfère pas définir $ resourcePath sur l'emplacement du script. Parce que l'utilisateur peut supprimer le dossier du programme d'installation pour une raison quelconque, puis l'icône manquera à nouveau.

La deuxième chose, pourriez-vous partager votre profil git bash? Parce que je ne suis pas réglé Git-bash sur mon WT.
J'ai besoin d'un modèle pour définir la règle.

J'ai résolu tous les problèmes et je soumets un PR

@Nomelas , malheureusement ça ne marche pas pour moi. J'ai édité le config.json et exécuté le script ps. Après avoir cliqué sur l'icône (pas de dossiers shell), je reçois:
This file does not have a program associated with it for performing this action. Please install an app or, if one is already installed, create an association in the Default Apps Settings page.

C'est le bloc de registre:
image

Les gars, je sais que je suis un peu en retard à cette fête, mais que diriez-vous d'utiliser OpenHere ? 😉

Exécutez PowerShell avec des autorisations élevées et tapez:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 qui aime ça!

@ nt4f04uNd Peut-être Notes

je l'ai peut-être manqué, mais les paramètres démarrent le répertoire sur "." ouvre le répertoire d'installation du terminal Windows lorsqu'il est ouvert à partir du menu Démarrer et ouvre ici le menu contextuel s'ouvre dans le répertoire dans lequel vous vous trouvez. lors de l'utilisation de "% USERPROFILE%", ouvre dans les deux sens uniquement dans mon répertoire utilisateur.

existe-t-il un moyen de faire fonctionner open here et d'avoir toujours "% USERPROFILE%" comme chemin par défaut lors de l'ouverture à partir du menu Démarrer? ouvert ici ne fonctionne pas avec "% USERPROFILE%".

@eskoONE et d'autres, oui, ça l'est!
Il existe une solution avec l'utilisation de l'argument -d. Consultez https://github.com/nt4f04und/wt-contextmenu

Les gars, je sais que je suis un peu en retard à cette fête, mais que diriez-vous d'utiliser OpenHere ? 😉

Exécutez PowerShell avec des autorisations élevées et tapez:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 qui aime ça!

Ça marche!! Je vous remercie!

C'est beaucoup plus facile que cela d'ajouter une seule commande au menu contextuel d'un dossier. C'est juste une simple clé de registre.

Par exemple (et vous pouvez également ajouter une icône, etc.)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Open Thing Here\command]
@="C:\\thing.exe \"%1\""

Comment puis-je ajouter une option pour ouvrir ce thing.exe uniquement lorsque j'appuie sur la touche SHIFT - comme avec l'option "PowerShell Window"

Les gars, je sais que je suis un peu en retard à cette fête, mais que diriez-vous d'utiliser OpenHere ? 😉

Exécutez PowerShell avec des autorisations élevées et tapez:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 qui aime ça!

Comment puis-je le supprimer?

Les gars, je sais que je suis un peu en retard à cette fête, mais que diriez-vous d'utiliser OpenHere ? 😉
Exécutez PowerShell avec des autorisations élevées et tapez:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 qui aime ça!

Comment puis-je le supprimer?

De la documentation :
Remove-OpenHereShortcut -ShortcutType:WindowsTerminal

Salut à tous,
J'implémente un script simple pour ajouter un menu contextuel.
Cela fonctionne pour moi avec la version 0.9.433.0 du terminal Windows
Merci @ nt4f04uNd et autres qui
Repo: menu contextuel du terminal Windows

C'est vraiment super !!! cependant peu de notes:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
vous devez définir-ExecutionPolicy sur Unrestricted pour l'exécuter.

En outre, cela semble cassé:

Copy-Item : The filename, directory name, or volume label syntax is incorrect.
At D:\Jeff\Documents\Windows-terminal-context-menu\SetupContextMenu.ps1:25 char:1
+ Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand

this dir needs to be created either prior to or as part of the execution:
$env:LOCALAPPDATA\WindowsTerminalContextIcons\

En outre, il dit:

PS D:\Jeff\Documents\Windows-terminal-context-menu> .\SetupContextMenu.ps1
Add top layer menu (shell) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add top layer menu (background) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add new entry Git Bash
Add new entry Command Prompt
Add new entry PowerShell
Add new entry Azure Cloud Shell

mais ne le crée pas vraiment correctement (ses icônes manquantes et mon Git Bash sont manquants car je n'ai pas la clé cachée):
image

Ce script a quelques bugs car il est fait pour une ancienne version de Windows Terminal, j'ai fait un fork pour corriger ces erreurs

https://github.com/KiritoDv/Windows-terminal-context-menu

image

Salut @KiritoDv
Pouvez-vous vérifier quelle est votre version de terminal Windows?
J'utilise la dernière version v0.9.433.0 et installe avec succès.

Merci ~

J'ai la dernière version, mais lorsque je mets à jour mon fichier de profils est le même que celui de l'ancienne version de profils, désolé pour cela, au moins le changement fonctionne pour quelqu'un avec la même erreur

Félicitations à Kirito pour la création du script, c'est vraiment sympa. Y a-t-il une chance que cela soit soutenu par WT à l'avenir?

@RonaldOlsthoorn Il y a certainement une _chance_ - d'où la raison pour laquelle ce problème est toujours ouvert 😄

Si quelqu'un pouvait trouver comment installer ces entrées de menu contextuel à partir d'une application packagée, et être capable de mettre à jour les entrées de manière dynamique (pour refléter la liste des profils), alors nous serions certainement intéressés à examiner un PR 😉 Jusque-là, c'est juste sur notre arriéré.

Peut-être que les gens qui l'ont fait pour Pengwin pourraient aussi le faire pour Terminal (ou au moins donner des conseils sur ce qu'ils ont fait pour le faire fonctionner).

Salut à tous,
J'implémente un script simple pour ajouter un menu contextuel.
Cela fonctionne pour moi avec la version 0.9.433.0 du terminal Windows
Merci @ nt4f04uNd et autres qui
Repo: menu contextuel du terminal Windows

C'est vraiment super !!! cependant peu de notes:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
vous devez définir-ExecutionPolicy sur Unrestricted pour l'exécuter.
En outre, cela semble cassé:

Copy-Item : The filename, directory name, or volume label syntax is incorrect.
At D:\Jeff\Documents\Windows-terminal-context-menu\SetupContextMenu.ps1:25 char:1
+ Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand

this dir needs to be created either prior to or as part of the execution:
$env:LOCALAPPDATA\WindowsTerminalContextIcons\

En outre, il dit:

PS D:\Jeff\Documents\Windows-terminal-context-menu> .\SetupContextMenu.ps1
Add top layer menu (shell) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add top layer menu (background) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add new entry Git Bash
Add new entry Command Prompt
Add new entry PowerShell
Add new entry Azure Cloud Shell

mais ne le crée pas vraiment correctement (ses icônes manquantes et mon Git Bash sont manquants car je n'ai pas la clé cachée):
image

Ce script a quelques bugs car il est fait pour une ancienne version de Windows Terminal, j'ai fait un fork pour corriger ces erreurs

https://github.com/KiritoDv/Windows-terminal-context-menu

image

Félicitations à vous pour avoir fait le script, fonctionne comme un charme.

Remarque d'implémentation: le manifeste de l'application PowerToys montre comment déclarer les menus contextuels de l'explorateur de fichiers pour les fichiers et les dossiers. Je ne sais pas si cela nécessiterait un enregistrement simultané du serveur COM ...

Notez le chevauchement avec # 2189 - semble cependant plutôt parallèle que complémentaire.

<Extensions>
        ...
        <com:Extension Category="windows.comServer">
          <com:ComServer>
            <com:ExeServer Executable="modules\PowerRenameUWPUI.exe" DisplayName="PowerRenameUWPUI">
              <com:Class Id="0440049F-D1DC-4E46-B27B-98393D79486B"/>
            </com:ExeServer>
          </com:ComServer>
        </com:Extension>
        <desktop4:Extension Category="windows.fileExplorerContextMenus">
          <desktop4:FileExplorerContextMenus>
            <desktop4:ItemType Type="*">
              <desktop4:Verb Id="FilePowerRename" Clsid="0440049F-D1DC-4E46-B27B-98393D79486B" />
            </desktop4:ItemType>
            <desktop5:ItemType Type="Directory">
              <desktop5:Verb Id="DirectoryPowerRename" Clsid="0440049F-D1DC-4E46-B27B-98393D79486B" />
            </desktop5:ItemType>
          </desktop4:FileExplorerContextMenus>
        </desktop4:Extension>

Je n'ai pas retracé le code source.
Je ne sais pas vraiment quelle est la fonction de rappel de profiles.json modified🤔.

Le mien a fonctionné après avoir passé beaucoup de temps à lire les commentaires des gens.

Étapes pour ajouter "Terminal Windows ici" dans le menu contextuel du clic droit:
1) Téléchargez le terminal Windows depuis le Microsoft Store

2) Sur https://github.com/yanglr/WindowsDevTools/blob/master/awosomeTerminal/icons/wt_32.ico
icône de téléchargement avec le nom de fichier wt_32.ico

3) Ouvrez votre CMD et exécutez cette commande mkdir "%USERPROFILE%\AppData\Local\terminal"

4) Copiez l'icône du terminal Windows (que vous avez téléchargé à l'étape 2) dans le dossier C: \ Users [votre-nom-d'utilisateur] AppData \ Local \ terminal
(Exemple pour le mien pour copier l'icône: C: \ Users \ DellAppData \ Local \ terminal)

5) Ouvrez le notpad et écrivez ci-dessous le code

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"=C:\\Users\\[your-user-name]\\AppData\\Local\\terminal\\wt_32.ico

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

6) Remarque:
Dans [votre-nom-d'utilisateur], écrivez votre nom d'utilisateur.
par exemple mon nom d'utilisateur est Dell mes chemins seront

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"=C:\\Users\\DELL\\AppData\\Local\\terminal\\wt_32.ico

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

Enregistrez le fichier sous wt.reg sur votre bureau (ou n'importe où sur votre PC) et ouvrez-le
(appuyez sur OK tout)
7) Testez-le par clic droit => Sélectionnez le terminal Windows ici
[Le terminal Windows (Aperçu) s'ouvre] 👍

Cela ne fonctionne toujours pas lorsque vous ajoutez le menu contextuel aux lecteurs dans l'Explorateur de fichiers. Il ouvre WT pendant une seconde, puis le ferme. Des indices sur la façon de résoudre ce problème particulier?

@ 4k3or3et Je ne sais pas à quoi vous faites référence, mais le travail de @ atif-dev et d'autres comme @ zadjii-msft est assez redondant car il existe un module Windows PowerShell qui couvre entièrement cela, y compris la restauration et la personnalisation.

@ 4k3or3et Je ne sais pas à quoi vous faites référence, mais le travail de @ atif-dev et d'autres comme @ zadjii-msft est assez redondant car il existe un module Windows PowerShell qui couvre entièrement cela, y compris la restauration et la personnalisation.

De la même manière que vous ajoutez des éléments de menu contextuel dans HKEY_CLASSES_ROOT\Direcroty\shell vous pouvez également les ajouter dans HKEY_CLASSES_ROOT\Drive\shell . Vous obtenez alors des éléments de menu contextuel lorsque vous cliquez avec le bouton droit sur les lecteurs dans l'Explorateur de fichiers.

Le problème est que lorsque vous ajoutez "C:\Users\PROFILE\AppData\Local\Microsoft\WindowsApps\wt.exe -d "%V" -p "Debian" qui fonctionne dans le cas des dossiers, ce n'est pas le cas pour les lecteurs dans l'Explorateur de fichiers. WT s'ouvre alors pendant une seconde et se ferme pour une raison quelconque.

Ma question est de savoir si quelqu'un a compris pourquoi Windows Terminal ne peut pas gérer le "% V" dans le cas de Drive?

Je vous remercie.

Le raccourci doit être %V\.

Le raccourci doit être %V\.

Oh mec! C'est génial!!!

Cela fonctionne pour les lecteurs et les dossiers ...

Seriez-vous de ce genre et m'expliqueriez la "science" derrière "% V."? En quoi diffère-t-il du "% V" normal?

C'est donc l'un de ces "problèmes étranges". "%V" à la racine du lecteur se développe en "C:\" . La plupart des analyseurs d'arguments de commande traitent \" comme " , car \ est le caractère "d'échappement". Par conséquent, il transforme le chemin de "C:\" en C:" (en supprimant le premier devis et en consommant le second).

Utiliser "%V\." augmente la racine du lecteur en "C:\\." , ce qui est totalement légal.

C'est donc l'un de ces "problèmes étranges". "%V" à la racine du lecteur se développe en "C:\" . La plupart des analyseurs d'arguments de commande traitent \" comme " , car \ est le caractère "d'échappement". Par conséquent, il transforme le chemin de "C:\" en C:" (en supprimant le premier devis et en consommant le second).

Utiliser "%V\." augmente la racine du lecteur en "C:\\." , ce qui est totalement légal.

Compris. Merci encore pour votre aide.

Je l'ai installé via le magasin, mais Windows me dit "Application non trouvée" quand je mets wt.exe comme commande dans la clé de registre. Si je le change en chemin complet, c'est- %LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe dire

Actuellement, j'ai la commande ajoutée en tant que cmd.exe /C start wt.exe , et cela fonctionne, bien que l'ancienne invite cmd clignote à l'écran lors de l'ouverture de wt.

Je l'ai installé via le magasin, mais Windows me dit "Application non trouvée" quand je mets wt.exe comme commande dans la clé de registre. Si je le change en chemin complet, c'est- %LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe dire

Actuellement, j'ai la commande ajoutée en tant que cmd.exe /C start wt.exe , et cela fonctionne, bien que l'ancienne invite cmd clignote à l'écran lors de l'ouverture de wt.

changer via regedit% LOCALAPPDATA% sur une adresse réelle comme "C: \ Users \ [utilisateur] AppData \ Local"

puis j'ai ajouté ce "startingDirectory": "%__CD__%" à profile.json

Je l'ai installé via le magasin, mais Windows me dit "Application non trouvée" quand je mets wt.exe comme commande dans la clé de registre. Si je le change en chemin complet, c'est- %LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe dire
Actuellement, j'ai la commande ajoutée en tant que cmd.exe /C start wt.exe , et cela fonctionne, bien que l'ancienne invite cmd clignote à l'écran lors de l'ouverture de wt.

changer via regedit% LOCALAPPDATA% sur une adresse réelle comme "C: \ Users [utilisateur] AppData \ Local"

puis j'ai ajouté ce "startingDirectory": "%__CD__%" à profile.json

Merci, il semble que c'est en effet la bonne approche, en utilisant le chemin étendu au lieu de %LOCALAPPDATA% . J'utilise "startingDirectory": "." qui fonctionne également comme prévu.

@ Wosser1sProductions utilise simplement cette commande cmd.exe /s /k pushd "%V" au lieu de toute autre commande.

Le but est d'ouvrir le nouveau terminal Windows (l'exécutable wt.exe ) à partir du menu contextuel. La valeur par défaut pour ouvrir l'invite de commande normale est en effet cmd.exe /s /k pushd "%V" .

Voici une solution.

La mauvaise chose à propos du fichier reg est que vous devez ajouter le chemin d'accès d'un utilisateur spécifique (car UWP s'installe par utilisateur) dans un contexte HKEY_CLASSES_ROOT. J'ai essayé de le remplacer par HKEY_CURRENT_USER mais cela ne fonctionne pas pour moi.

S'il existe un moyen d'installer WT à l'échelle du système dans un dossier «global», ce serait une meilleure pratique

Permettez-moi d'ajouter mon fichier reg ici, pour que n'importe qui d'autre puisse l'utiliser:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal Here"
"Icon"="E:\\Resimler\\ico\\terminal.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="D:\\WindowsApps\\Microsoft.WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

Le premier @ est du texte qui apparaîtra dans le menu contextuel (_ "Windows Terminal Here" _)
"Icône" est le chemin de l'icône qui apparaîtra également dans le menu contextuel.
Le deuxième @ est le chemin d'accès à l'exe Terminal. vous devez savoir où il se trouve.

Personnalisez et collez ce code dans un fichier txt et renommez-le en _wt.reg_. Que de l'exécuter.

Ensuite, ouvrez votre nouveau terminal Windows. Aller aux paramètres:
image

Nous voici dans les profiles.json
Collez-y ces codes:


{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
    "profiles":
    {
        "defaults":
        {
        },
        "list":
        [
            {
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "cmd",
                "commandline": "cmd.exe",
                "hidden": false,
                "startingDirectory": "."
            },
            {
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            },
            {
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "Windows.Terminal.Wsl"
            }
        ]
    },
    "schemes": [],
    "keybindings": []
}


C'est ça

voici mon script de registre, il utilise les arguments de la ligne de commande. Je l'ai configuré pour les noms de profil par défaut CMD, Powershell et WSL Ubuntu, avec les invites normales et d'administration. Il ne nécessite aucune modification du fichier profiles.json, contrairement à la plupart des scripts que j'ai vus dans ce numéro
https://gist.github.com/OmegaRogue/9069405e7b0bf5e76f1c5d9c96f8b663

Aucune de ces options ne me satisfait totalement. Alors, j'ai essayé.

J'ai modifié la solution de @OmegaRogue . Je n'aimais pas l'imbrication, j'ai donc essayé de diviser l'administrateur et le non-administrateur dans des menus séparés.

image

Malheureusement, je ne peux pas comprendre comment obtenir les commandes d'administration au même niveau. Voici ce que j'ai:
image

Voici mon fichier .reg
J'ai laissé quelques commentaires pour aider les gens à déterminer quelles sections font quoi, afin que quelqu'un puisse peut-être aider à corriger l'imbrication de l'administrateur.

Aucune de ces options ne me satisfait totalement. Alors, j'ai essayé.

J'ai modifié la solution de @OmegaRogue . Je n'aimais pas l'imbrication, j'ai donc essayé de diviser l'administrateur et le non-administrateur dans des menus séparés.

image

Malheureusement, je ne peux pas comprendre comment obtenir les commandes d'administration au même niveau. Voici ce que j'ai:
image

Voici mon fichier .reg
J'ai laissé quelques commentaires pour aider les gens à déterminer quelles sections font quoi, afin que quelqu'un puisse peut-être aider à corriger l'imbrication de l'administrateur.

Je peux modifier mon fichier pour ce faire et pour supprimer l'imbrication de l'administrateur

@OmegaRogue Bien joué , mais je suppose que l'icône du menu principal mourra avec une version (et donc le changement de chemin de WindowsTerminal.exe). Peut-être que le remplacer par une icône plus accessible à tous serait mieux.

Edit: Aussi, si vous parvenez à ajouter des options d'administration (de @ t-makaro) sans le problème d'imbrication, ce serait génial.

C'est drôle, comment @lllopo @OmegaRogue @ t-makaro @sundowatch et d'autres réinventent une roue.

Ces fichiers reg ont à nouveau les mêmes erreurs. Il leur manque le roll back ou les tests. Ils ne fonctionnent pas sur des chemins avec des caractères non ASCII comme ě š č ř í é ý é ů ou vous devez changer les paramètres de votre terminal.

Jetez plutôt un œil ici .

C'est drôle, comment @lllopo @OmegaRogue @ t-makaro @sundowatch et d'autres réinventent une roue.

Ces fichiers reg ont à nouveau les mêmes erreurs. Il leur manque le roll back ou les tests. Ils ne fonctionnent pas sur des chemins avec des caractères non ASCII comme ě š č ř í é ý é ů ou vous devez changer les paramètres de votre terminal.

Jetez plutôt un œil ici .

Je connais le problème et la version que j'utilise ne l'a pas, je viens de publier cette version pour plus de lisibilité, ma version utilise du texte encodé hex (2) au lieu d'une chaîne normale

Les gens oublient alors l'effet secondaire de si vous ajoutez "startingDirectory": "." pour travailler avec la modification du registre qui ajoute un clic droit pour ouvrir dans le dossier actuel, que maintenant si vous ouvrez simplement le terminal via le menu Démarrer, il s'ouvre sur le répertoire system32

Les gens oublient alors l'effet secondaire de si vous ajoutez "startingDirectory": "." pour travailler avec la modification du registre qui ajoute un clic droit pour ouvrir dans le dossier actuel, que maintenant si vous ouvrez simplement le terminal via le menu Démarrer, il s'ouvre sur le répertoire system32

c'est la raison pour laquelle mon script n'en a pas besoin

Aucune de ces options ne me satisfait totalement. Alors, j'ai essayé.

J'ai modifié la solution de @OmegaRogue . Je n'aimais pas l'imbrication, j'ai donc essayé de diviser l'administrateur et le non-administrateur dans des menus séparés.

image

Malheureusement, je ne peux pas comprendre comment obtenir les commandes d'administration au même niveau. Voici ce que j'ai:
image

Voici mon fichier .reg
J'ai laissé quelques commentaires pour aider les gens à déterminer quelles sections font quoi, afin que quelqu'un puisse peut-être aider à corriger l'imbrication de l'administrateur.

J'ai ajouté une version de mon script de registre à l'essentiel qui n'a pas d'imbrication:
https://gist.github.com/OmegaRogue/9069405e7b0bf5e76f1c5d9c96f8b663#file -directory_prompts_windowsterminal_nonnested-reg

A fait ceci:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d %V"

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d %V"
  • l'exécuter

A fait ceci:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Users\\<user>\\AppData\\Local\\Terminal\\terminal.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Users\\<user>\\AppData\\Local\\Terminal\\terminal.ico"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."
  • l'exécuter

Vous n'avez pas besoin de télécharger l'icône, vous pouvez simplement utiliser le chemin de l'exécutable comme chemin de l'icône, comme je l'ai fait dans mon script de registre

Eh bien, nous devons éditer le fichier reg à chaque fois que le terminal Windows est mis à jour? il vaut mieux stocker le fichier icône ailleurs

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1121.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

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

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1121.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

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

J'ai remarqué que faire un clic droit sur un dossier et lancer le terminal ne fonctionne pas correctement, il s'ouvre dans le dossier conteneur.
J'ai trouvé une solution en remplaçant wt.exe -d . par wt.exe -d "%V" dans le script de registre, c'est ainsi que VS Code le fait.

Voici le script de registre fixe que j'ai utilisé (pas d'icône)

Edit: Ajout de% V. comme suggéré, et cliquez avec le bouton droit sur un lecteur.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows Terminal here"
[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d \"%V.\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal here"
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d \"%V.\""

[HKEY_CLASSES_ROOT\Drive\shell\wt]
@="Open Windows Terminal here"
[HKEY_CLASSES_ROOT\Drive\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d \"%V.\""

Cette solution a très bien fonctionné, merci.

@BealeStBluesBoy et @ megapro17 Merci pour votre fichier reg.
J'ai remarqué que wt.exe -d \"%V\" s'ouvre correctement avec le dossier sélectionné, mais cela ne fonctionne pas lorsque vous êtes à la racine d'un lecteur. Exemple sur c: ou d: . Il ouvre le terminal mais avec le code d'erreur 0x8007010b
De plus, lorsque vous sélectionnez un lecteur et exécutez cette commande, une autre erreur apparaît et le terminal ne s'ouvre même pas.

Cependant, avec wt.exe -d . le terminal s'ouvre sans problème, peu importe où vous êtes. L'inconvénient est qu'il ouvre simplement le répertoire dans lequel vous vous trouvez actuellement, pas le répertoire que vous avez sélectionné. Lorsque vous sélectionnez directement un lecteur, il s'ouvre simplement dans le dossier c:\windows\system32 .

Je m'en tiendrai à wt.exe -d . car cela ouvre toujours un terminal utilisable.

ÉDITER:
Comme @ DHowett-MSFT l'a suggéré ci-dessous, il existe une autre option wt.exe -d \"%V\.\" . Cela améliore le comportement et rend un terminal ouvert même lorsque vous êtes à la racine d'un lecteur. Une chose qui ne fonctionne toujours pas avec cette solution est lorsque vous sélectionnez un lecteur. Cela entraîne toujours une erreur.

Offtopic: Ce problème est un moyen trop gros de lire chaque commentaire :) Désolé pour la double publication d'un problème.

Essayez "%V\." , comme suggéré plusieurs fois dans ce fil.

Comment ajouter également une course en tant qu'administrateur?

Pouvons-nous passer à l'administrateur via le terminal?

Pouvons-nous passer à l'administrateur via le terminal?

Pas pour le moment avec le terminal Windows vanille. Peut-être WT v2.0, voir # 5000. Mais il existe une solution de contournement: vous pouvez utiliser gsudo, un Sudo open source pour Windows.
https://github.com/gerardog/gsudo

Puisque je suis l'auteur, je me sens obligé d'avertir qu'il est techniquement possible qu'un malware spécialement conçu puisse envoyer des frappes au clavier à la console sudo'ed et ignorer l'isolation UAC / et augmenter les privilèges.

En parlant de manière cmd, il existe déjà une commande cmd appelée runas qui demande le mot de passe (similaire à sudo ).
https://en.wikipedia.org/wiki/Runas

Pouvons-nous passer à l'administrateur via le terminal?

Pas pour le moment avec le terminal Windows vanille. Mayve WT v2.0, voir # 5000. Mais il existe une solution de contournement: vous pouvez utiliser gsudo, un Sudo open source pour Windows.
https://github.com/gerardog/gsudo

Puisque je suis l'auteur, je me sens obligé d'avertir qu'il est techniquement possible qu'un malware spécialement conçu puisse envoyer des frappes au clavier à la console sudo'ed et ignorer l'isolation UAC / et augmenter les privilèges.

Et si nous vérifions les accès indésirables via un mécanisme de sécurité? Cela fonctionnerait-il? GSudo est un bon début.

@BealeStBluesBoy et @ megapro17 Merci pour votre fichier reg.
J'ai remarqué que wt.exe -d \"%V\" s'ouvre correctement avec le dossier sélectionné, mais cela ne fonctionne pas lorsque vous êtes à la racine d'un lecteur. Exemple sur c: ou d: . Il ouvre le terminal mais avec le code d'erreur 0x8007010b
De plus, lorsque vous sélectionnez un lecteur et exécutez cette commande, une autre erreur apparaît et le terminal ne s'ouvre même pas.

Cependant, avec wt.exe -d . le terminal s'ouvre sans problème, peu importe où vous êtes. L'inconvénient est qu'il ouvre simplement le répertoire dans lequel vous vous trouvez actuellement, pas le répertoire que vous avez sélectionné. Lorsque vous sélectionnez directement un lecteur, il s'ouvre simplement dans le dossier c:\windows\system32 .

Je m'en tiendrai à wt.exe -d . car cela ouvre toujours un terminal utilisable.

ÉDITER:
Comme @ DHowett-MSFT l'a suggéré ci-dessous, il existe une autre option wt.exe -d \"%V\.\" . Cela améliore le comportement et rend un terminal ouvert même lorsque vous êtes à la racine d'un lecteur. Une chose qui ne fonctionne toujours pas avec cette solution est lorsque vous sélectionnez un lecteur. Cela entraîne toujours une erreur.

Offtopic: Ce problème est un moyen trop gros de lire chaque commentaire :) Désolé pour la double publication d'un problème.

@brainfoolong Il y a d'autres problèmes que la racine d'un lecteur, mais j'ai résolu tous ces problèmes ici . ✌

Comment ajouter également une course en tant qu'administrateur?

@aminya J'ai désactivé l'UAC et désactivé le mode d'approbation de l'administrateur (AAM) comme BrainSlugs83 a répondu dans https://superuser.com/questions/462174/winr-runs-as-administrator-in-windows-8.
Si vous ne vous souciez pas des problèmes de sécurité ou des effets secondaires que cela peut causer, après cela, Windows Terminal fonctionnera en tant qu'administrateur par défaut, donc aucun autre paramètre n'est nécessaire après l'utilisation du script de registre ci-dessus.

J'ai finalement résolu le problème 🚀. Fusionnez simplement ceci.

Cela a le bouton d'administration sans aucun problème de sécurité.

Fichier Reg générique

(Si vous n'avez pas PowerShellCore, c'est plus lent):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""


[HKEY_CLASSES_ROOT\Directory\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\shell\wt_admin\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

Fichier Reg plus rapide

(Si vous avez PowerShellCore)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""


[HKEY_CLASSES_ROOT\Directory\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\shell\wt_admin\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

Vous pouvez télécharger l'icône d'ici et remplacer son chemin de téléchargement (échapper \ ) par cmd.exe :
https://raw.githubusercontent.com/microsoft/terminal/master/res/terminal.ico

Le mode administrateur -windowstyle hidden semble également être ignoré

Le mode administrateur

Vous devrez peut-être redémarrer explorer.exe

-windowstyle hidden semble également être ignoré

Il montre les fenêtres pendant un moment.

certains des scripts d'administration ne fonctionnent pas pour moi, je ne sais pas pourquoi, mais j'ai remarqué que git bash (en parlant de quel vscode semble avoir beaucoup de points d'entrée open with vs code dispersés dans le Registry) s'affiche dans plus de menus que certaines des solutions proposées, j'ai donc créé une version simplifiée de @OmegaRogue
ceci utilise "%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\wt.exe" "-d" "." comme commande, comme suggéré
https://gist.github.com/YoraiLevi/283532872b26b93e562b04812821db25

Windows Registry Editor Version 5.00

;drive
[HKEY_CLASSES_ROOT\Drive\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Drive\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end drive


;background 1
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end background 1

;libary folders, like what git does
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end library folders 

;background 2
[HKEY_CLASSES_ROOT\Directory\background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\background\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end background 2

Je viens de créer deux scripts PowerShell pour installer / désinstaller les éléments du menu contextuel et les partager sur GitHub à

https://github.com/lextm/windowsterminal-shell

La logique est similaire à celle proposée par

image

Avec install.ps1 et uninstall.ps1 , vous n'avez plus besoin d'importer les fichiers de clé de registre et vous vous demandez comment les supprimer si vous n'aimez pas.

Les demandes de tirage sont les bienvenues.

Un peu ennuyeux que l'icône soit dans un chemin versionné, y a-t-il un meilleur moyen d'y faire référence en dehors de simplement expédier mon un?

À mon avis, devoir modifier manuellement le registre n'est pas une solution idéale. Une partie des arguments de vente de ce projet est qu'il prend en charge plusieurs types de shells (pwsh, cmd, ubuntu, quoi que ce soit d'autre) et cette liste peut varier d'un utilisateur à l'autre. Un script de registre fixe ne le coupera pas.
Il faudrait également se rappeler de supprimer manuellement les modifications apportées au registre lors de la désinstallation de Windows Terminal.

Existe-t-il une conception / considération technique / limitation spécifique qui empêcherait cette fonctionnalité d'être intégrée dans le terminal Windows lui-même? Ou est-ce plutôt une question de personnel, de priorités et de temps?

main-d'œuvre, priorités et temps

Certainement celui-là. Si j'avais tout le temps d'ingénierie à passer, je voudrais proposer une extension de shell réelle qui détecte vos profils et les affiche dans un menu, et vous permet de générer des shells dans des instances déjà en cours d'exécution de Terminal.

Après y avoir réfléchi, je pense qu'il pourrait y avoir une façon plus simple d'aborder cela. Que faire s'il n'y avait qu'une seule entrée statique dans le menu contextuel, qui, une fois cliqué, ouvrirait le terminal Windows où ils sont ensuite invités à sélectionner un profil.

Cela supprimerait la nécessité de maintenir un ensemble dynamique de clés de registre. Et faites en sorte que le fichier de paramètres n'ait pas besoin d'être analysé et vérifié pour les changements de profil à chaque clic droit.

Je ne me suis pas familiarisé avec la base de code de ce projet, donc je ne peux pas dire avec certitude si cela réduirait la quantité de travail nécessaire pour l'implémenter. Mais j'aimerais savoir ce que vous en pensez.

tapez simplement wt dans la barre d'adresse de l'explorateur Windows dans n'importe quel dossier et appuyez sur Entrée

Si quelqu'un a essayé @ llevo3, le conseil de taper wt dans la barre d'adresse de l'explorateur comme vous le feriez avec cmd ne fonctionne pas pour vous.

Ensuite, assurez-vous que ce qui suit est dans votre variable d'environnement PATH
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps

tapez simplement wt dans la barre d'adresse de l'explorateur Windows dans n'importe quel dossier et appuyez sur Entrée

@ llevo3 cela n'ouvre pas le terminal Windows dans le répertoire courant. Il s'ouvre plutôt avec le répertoire par défaut.

@abdulghanitech ce problème extrêmement spécifique a été discuté pas moins de 30 fois dans ce fil. 😄

tapez simplement wt dans la barre d'adresse de l'explorateur Windows dans n'importe quel dossier et appuyez sur Entrée

@ llevo3 cela n'ouvre pas le terminal Windows dans le répertoire courant. Il s'ouvre plutôt avec le répertoire par défaut.

si vous voulez ouvrir le répertoire courant, utilisez simplement l'option -d devant l'adresse
ex
wt -d [path you want to go]

Pour clarifier, vous pouvez ouvrir le répertoire courant en tapant wt -d .

Q: Une fois que le terminal est ouvert avec wt -d . , existe-t-il un moyen d'utiliser ce même chemin pour les nouvelles instances de terminal (onglet / volet)?

Merci à tous ceux qui ont commenté une solution et différentes approches pour l'appliquer correctement. Je l'ai fait fonctionner avec la console 2. En utilisant le "Ouvrir ici" avec le drapeau -d . fonctionné prefect.

Excusez-moi comment puis-je résoudre ce problème

image

Mec, ne viens pas sur un fil sans rapport pour poser une question. Déposer un nouveau bogue et l'équipe peut l'examiner 😄

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak

J'ai résolu le problème maintenant, il pourrait être fermé. Merci beaucoup à tous ceux qui ont participé à cette discussion.

Étape 0:

Testez si les deux constantes ci-dessous fonctionnent bien qui seront utilisées dans les autres étapes suivantes.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Si tout fonctionne bien ici, ces deux constantes peuvent être utilisées directement dans les autres étapes ci-dessous.

Ou veuillez effectuer les remplacements suivants dans les étapes ci-dessous:

% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local

Ici [userName] représente votre nom d'utilisateur , par exemple, le mien est Bruce .

Étape 1:
Exécutez des éléments ci-dessous dans CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image

Étape 2:
Copiez l'icône du terminal Windows dans le dossier %USERPROFILE%\AppData\Local\terminal , l'icône peut être obtenue dans https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons dont le nom de fichier est wt_32.ico .

Étape 3:
Enregistrez le contenu suivant sous le nom wt.reg , puis exécutez-le en tant qu'administrateur.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Pour être noté , si l'exe obtenu après la construction du code par vous-même est wtd.exe , vous devez changer le wt.exe ci-dessus en wtd.exe dans le registre ci-dessus.

Étape 4:
Tester
image

J'ai eu un problème avec cette solution, des problèmes d'autorisation, si cela peut aider quelqu'un
remplacer
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"
avec
@="C:\\Users\\YOURUSERNAME\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

D'après ce que je comprends, les variables d'environnement encodées en pourcentage doivent utiliser le type de chaîne extensible ( REG_EXPAND_SZ ) pour être correctement interprétées, c'est pourquoi je pense que certaines des autres solutions ne fonctionnent pas complètement 1 . J'ai créé le script de registre ci-dessous qui utilise des chaînes extensibles pour que vous n'ayez pas à changer le nom d'utilisateur, cependant, vous souhaitez probablement changer le chemin de l'icône .

J'ai également ajouté une action / option à ouvrir en tant qu'administrateur.

Windows Registry Editor Version 5.00

;Binary data is just UTF16 (LE) split every 2 bytes with a comma
;Conversion done with https://onlineutf8tools.com/convert-utf8-to-utf16?hex=true&little-endian=true&space=false&chain=split-string%253Fsplit-by-length%253Dtrue%2526separator%253D%252C

;User action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal]
@="Open Terminal here"
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;User action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal\command]
;@="%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe -d ."
@=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,64,00,20,00,2e,00

;Admin action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin]
@="Open Terminal here (Admin)"
;Show the UAC shield on the action
"HasLUAShield"=""
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;Admin action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin\command]
@="PowerShell -WindowStyle Hidden -Command \"Start-Process wt -ArgumentList '-d','.' -Verb runAs\""
  1. https://superuser.com/a/599025

D'après ce que je comprends, les variables d'environnement encodées en pourcentage doivent utiliser le type de chaîne extensible ( REG_EXPAND_SZ ) pour être correctement interprétées, c'est pourquoi je pense que certaines des autres solutions ne fonctionnent pas _fully_1. J'ai créé le script de registre ci-dessous qui utilise des chaînes extensibles pour que vous n'ayez pas à changer le nom d'utilisateur, cependant, vous souhaitez probablement changer le chemin de l'icône .

J'ai également ajouté une action / option à ouvrir en tant qu'administrateur.

Windows Registry Editor Version 5.00

;Binary data is just UTF16 (LE) split every 2 bytes with a comma
;Conversion done with https://onlineutf8tools.com/convert-utf8-to-utf16?hex=true&little-endian=true&space=false&chain=split-string%253Fsplit-by-length%253Dtrue%2526separator%253D%252C

;User action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal]
@="Open Terminal here"
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;User action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal\command]
;@="%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe -d ."
@=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,64,00,20,00,2e,00

;Admin action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin]
@="Open Terminal here (Admin)"
;Show the UAC shield on the action
"HasLUAShield"=""
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;Admin action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin\command]
@="PowerShell -WindowStyle Hidden -Command \"Start-Process wt -ArgumentList '-d','.' -Verb runAs\""
  1. https://superuser.com/a/599025

Hé merci pour cela, je n'ai pas fini par utiliser ceci car il ouvre une fenêtre Windows PowerShell lors du lancement de manière élevée, mais cela m'a amené à approfondir cela et j'ai créé mon propre référentiel avec un script d'installation facile pour toute autre personne souhaitant des entrées de menu contextuel pour Windows Terminal.

Pour les futurs lecteurs de ce long fil,

  • Microsoft a décidé d'inclure ses propres éléments de menu contextuel de l'Explorateur Windows. C'est pourquoi ce numéro a été clos. Cependant, en raison de leur cycle de publication, cela n'atterrira pas sur votre ordinateur (via Microsoft Store pour Windows 10) dans quelques semaines (ou mois). Jusqu'à présent, ils ont développé une simple extension de shell avec des fonctionnalités de base.
  • Si vous avez vraiment besoin de menus contextuels en ce moment, vous devez ajouter vous-même ces éléments de menu en utilisant l'une des méthodes de ce long fil de discussion. Résumer,

    • Importez les clés de registre.
    • Utilisez des fichiers batch. (comme ça )
    • Utilisez certains scripts PowerShell. (comme ça )

Quoi que vous choisissiez, signalez les problèmes aux propriétaires de ces dépôts afin qu'ils puissent les résoudre.

  • Cependant, en raison de leur cycle de publication, cela n'atterrira pas sur votre ordinateur (via Microsoft Store pour Windows 10) dans quelques semaines (ou mois)

Oh, ce sera certainement plus tôt que des mois 😉

: tada: Ce problème a été résolu dans # 6100, qui a maintenant été publié avec succès sous le nom Windows Terminal Preview v1.1.1671.0 .: tada:

Liens utiles:

Le lien Store Download vers Windows Terminal Preview (https://www.microsoft.com/store/apps/9n8g5rfz9xk3?cid=storebadge&ocid=badge) ne devrait-il pas? 🤔

@DHowett oh non, nous devrons mettre à jour le bot

Il semble que je vais encore utiliser mon script batch pour le moment car celui de la vanille n'inclut pas d'option élevée, je suis sûr qu'avec plus de temps, la version vanille obtiendra plus d'options et / ou de fonctionnalités, un grand merci au gars qui a soumis la demande de tirage!

Huh, nous devrons absolument mettre à jour le bot. Lol.

Désolé pour le message hors sujet, mais si vous avez installé à la fois la version finale et la version préliminaire, lesquelles seraient invoquées lors de l'exécution de wt?

Je devine tout ce que vous avez défini dans les alias d'exécution d'application dans les paramètres de Windows:
image

Oui.

Ce serait bien si l'icône du terminal était également incluse dans le menu contextuel

Ce serait bien si l'icône du terminal était également incluse dans le menu contextuel

Hey wadda tu sais, c'est # 6246.

S'il vous plaît , pour l'amour de tout le monde sur cette question (tous les 111 d' entre vous), s'il vous plaît vérifier ces questions:
https://github.com/microsoft/terminal/issues?q=is%3Aopen+is%3Aissue+label%3AArea-ShellExtension

avant de commenter "mec, ce serait cool si le menu contextuel le faisait ..."

Le lien Store Download vers Windows Terminal Preview ne devrait-il pas ( microsoft.com/store/apps/9n8g5rfz9xk3?cid=storebadge&ocid=badge )? 🤔

@DHowett oh non, nous devrons mettre à jour le bot

Huh, nous devrons absolument mettre à jour le bot. Lol.

Je l'ai.

Cette page vous a été utile?
0 / 5 - 0 notes