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