Comment puis-je lancer powershell.exe avec les couleurs "par défaut" du raccourci PowerShell?
je suis attaché à la belle couleur bleue de la fenêtre PowerShell lorsque vous la Lancez à partir d'un des raccourcis préinstallés. Cependant, si vous lancez manuellement powershell.exe, tu n'obtiens pas ces couleurs, tu obtiens noir / blanc: (
C'est parce que les paramètres par défaut sont définies sur le raccourci (.dossier:
j'ai une entrée "PowerShell Prompt Here" dans le menu contextuel de L'explorateur, et je comme lui pour lancer PowerShell en utilisant les mêmes belles couleurs que le raccourci habituel; noir suce, et il est déroutant d'avoir des fenêtres de différentes couleurs (surtout quand j'ai quelques vitres de commande de la vieille école ouvertes fréquemment qui sont aussi noires!).
j'ai trouvé deux problèmes en essayant de mettre cette mesure:
- fixer la couleur de L'intérieur de PowerShell semble ne permettre que certaines valeurs (ConsoleColor enum), dont aucune ne correspond à celle sur le raccourci par défaut.
- le fait de fixer la couleur dans le profil PS ne produit que du texte écrit par la suite pour honorer la nouvelle couleur de fond. L'ajout de" cls " provoque un mauvais flash de la couleur originale au début.
Est-il possible de lancer PowerShell à partir d'une ligne de commande (c'est à dire. que je peux intégrer dans le registre comme un menu contextuel de l'Explorateur) qui va utiliser les mêmes paramètres que le raccourci?
7 réponses
Voici une manière très facile:
1. Ajouter. LNK à votre variable PATHEXT.
Démarrer -> exécuter "sysdm.cpl "- > Avancé - > Variables D'environnement
défiler vers le bas à travers les variables du système, double clic PATHEXT
Add .LNK; comme illustré ci-dessous:
2 Copier la valeur par défaut "Windows Powershell.lnk"
Copy-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk" "C:\Windows\System32\powershell.lnk"
3. Taper "powershell" à partir d'une invite d'exécution va maintenant faire apparaître la couleur/configuration par défaut de la console.
vous pouvez personnaliser le.ink in C:\Windows\System32 à votre convenance.
s'il vous Plaît noter que cela ne fonctionne que parce que vous avez ajouté .lnk à la liste des extensions ET acceptable c:\windows\system32 est le premier élément dans le chemin de recherche (variable système PATH) par défaut.
Cela ne personnalisera pas la console si elle est lancée via cmd.EXE.
4. Pour que cela fonctionne à partir du menu contextuel "Exécuter Powershell Here", enregistrez ceci comme un .fichier reg et de l'importer:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\PowerShellHere\command]
@="C:\WINDOWS\system32\cmd.exe /c start powershell -NoExit \"cd '%1';(get-host).ui.rawui.windowtitle = 'Oompa Loompa'\""
[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere\command]
@="C:\WINDOWS\system32\cmd.exe /c start powershell -NoExit \"cd '%1';(get-host).ui.rawui.windowtitle = 'Oompa Loompa'\""
j'utilise cmd.exe à appeler "start" qui lancera la powershell.lnk et passer le répertoire de travail courant comme argument. Ça ne semble pas encore fonctionner depuis la barre d'adresse. J'aurais dû rentrer il y a 45 minutes, mais ton problème était amusant à résoudre! :)
points Bonus: vous pouvez thread les commandes envoyées à Powershell. Donc, si vous cherchez à modifier l'attribut titre de la console Powershell:
\"cd '%1';(get-host).ui.rawui.windowtitle = 'Oompa Loompa'"
il suffit d'ajouter un point-virgule entre les commandes.
Heureux, les bombardements
éditez votre script de profil (pointé par $profile) et définissez vous-même les couleurs désirées:
# set regular console colors
[console]::backgroundcolor = "darkmagenta"
[console]::foregroundcolor = "darkyellow"
# set special colors
$p = $host.privatedata
$p.ErrorForegroundColor = "Red"
$p.ErrorBackgroundColor = "Black"
$p.WarningForegroundColor = "Yellow"
$p.WarningBackgroundColor = "Black"
$p.DebugForegroundColor = "Yellow"
$p.DebugBackgroundColor = "Black"
$p.VerboseForegroundColor = "Yellow"
$p.VerboseBackgroundColor = "Black"
$p.ProgressForegroundColor = "Yellow"
$p.ProgressBackgroundColor = "DarkCyan"
# clear screen
clear-host
je l'ai trouvé très utile d'utiliser concfg outil et scoop pour installer les couleurs et les polices de Powershell:
-
installez scoop:
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
-
Installer concfg:
scoop install concfg
-
Install thème Solarisé :
concfg import solarized
c'est cela, merci aux auteurs!
cliquez sur le menu Système (icône PowerShell en haut à gauche de la fenêtre) et cliquez par défaut. Vous pouvez modifier les couleurs par défaut ici et cela sera respecté par la commande PowerShell Prompt Here.
La bonne façon de le faire est avec le Registre de la
cd hkcu:/console
"151900920" = '%systemroot%_system32_windowspowershell_v1.0_powershell.exe'
ni "151900920" -f
sp "151900920" ColorTable00 0x00562401
sp "151900920" ColorTable07 0x00f0edee
- Run
regedit
commande pour ouvrir l'éditeur du registre - traquer
HKEY_CURRENT_USER > CONSOLE
et sauvegarder le dossier entier en exportant juste au cas où - supprimer le dossier
redémarrez votre Powershell, le schéma de couleurs doit avoir été réinitialisé par défaut.
Note: Si vous avez d'autres paramètres liés à PowerShell (ou L'invite de commande, Git Bash etc) que vous pourriez vouloir garder, s'il vous plaît explorer davantage le dossier de la Console pour supprimer les touches appropriées
C'était ma solution (définir les couleurs dans un script qui se lance comme système). Peut-être plus que vous avez besoin (voir ma propre réponse):