Existe-t-il un moyen de démarrer PowerShell dans un dossier spécifique à partir de l'Explorateur Windows, par exemple faire un clic droit dans un dossier et disposer d'une option telle que "Ouvrir PowerShell dans ce dossier"?
C'est vraiment pénible de devoir changer de répertoire dans mon dossier de projet la première fois que j'exécute MSBuild tous les jours.
Dans l'Explorateur Windows, accédez simplement à la barre d'adresses située en haut (raccourcis clavier: Alt+D ou Ctrl+L) et tapez powershell
ou powershell_ise
et appuyez sur Enter. Une fenêtre de commande PowerShell s'ouvre avec le répertoire actuel.
Pour ajouter simplement l’inverse, l’invite PowerShell vous permet:
ii .
ou
start .
d'ouvrir une fenêtre de l'explorateur Windows dans votre répertoire actuel.
Si vous utilisez Windows 8 ou une version ultérieure, vous pouvez simplement utiliser le fichier intégré → "Ouvrir Windows PowerShell".
Ou Alt + F suivi par R.
http://www.hanselman.com/blog/IntroducingPowerShellPromptHere.aspx
Scott Hanselman a un inf très simple qui le fera pour vous. Si vous voulez modifier le script, il est très facile de modifier l’inf pour les personnalisations.
Comme alternative à la réponse ci-dessus, vous devez taper chaque fois la commande PowerShell ( powershell.exe ) pour créer une entrée de menu contextuel. comme avec le menu contextuel "Ouvrir la fenêtre de commande ici".
Il y a trois clés de registre où ces commandes vont. Chaque touche contrôle le menu contextuel d'un objet différent de l'Explorateur Windows. Le premier est celui sur lequel vous avez posé des questions:
Pour chacune de ces clés de registre, vous pouvez ajouter une sous-clé qui ajoutera une commande "Ouvrir la fenêtre PowerShell ici" au menu contextuel, tout comme vous avez un menu contextuel "Ouvrir la fenêtre de commande ici".
Voici une copie de mon fichier OpenPowerShellHere.reg, qui place la commande dans le menu contextuel de chacun des objets Explorer, de l'arrière-plan de la fenêtre, du dossier et de l'icône du lecteur:
Windows Registry Editor Version 5.00
;
; Add context menu entry to Windows Explorer background
;
[HKEY_CLASSES_ROOT\Directory\Background\Shell\powershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\Background\Shell\powershell\command]
@="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"
;
; Add context menu entry to Windows Explorer folders
;
[HKEY_CLASSES_ROOT\Directory\Shell\powershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\Shell\powershell\command]
@="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"
;
; Add context menu entry to Windows Explorer drive icons
;
[HKEY_CLASSES_ROOT\Drive\Shell\powershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Drive\Shell\powershell\command]
@="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"
Alors, avec votre éditeur de texte préféré, ouvrez un nouveau fichier nommé OpenPowerShellHere.reg. Copiez le texte exact du code ci-dessus, collez-le dans le nouveau fichier et enregistrez-le. (J'aurais inclus une copie du fichier, mais je ne pouvais pas savoir si les pièces jointes étaient possibles.) Si vous voulez exclure la commande de une des entrées, commentez la section appropriée avec des points-virgules. Mes commentaires vous montrent chaque section.
Après avoir enregistré le fichier, exécutez-le en double-cliquant dessus. Quand il le demande, dites-lui de procéder. Dès que vous l'exécutez, les entrées du menu contextuel seront affichées!
Voici le menu contextuel de ma fenêtre Explorer. J'ai mis en évidence les commandes console et PowerShell. Comme vous pouvez le constater, vous pouvez également ajouter une entrée de menu contextuel pour exécuter une fenêtre de commande avec privilèges élevés, c'est-à-dire , en tant qu'administrateur .
Note: Les entrées du menu contextuel sont affichées par ordre alphabétique, en fonction de leurs clés de registre. Le nom de clé de la commande élevée Shell est " runas ", raison pour laquelle il vient après l'entrée PowerShell.
Note: Si une fenêtre Explorer est ouverte, vous devrez peut-être la fermer et la rouvrir pour que la modification soit prise en compte.
Note: Sous Windows 7, le HKCR\Directory\Shell
ne fonctionne pas si vous utilisez la boîte à outils à côté de l'explorateur
(c.-à-d. en cliquant sur Documents sous l'en-tête Bibliothèques)
vous devez naviguer en utilisant Computer -> C: -> to -> Some -> Target -> Directory
Vous pouvez télécharger le fichier inf à partir d’ici - présentation de l’invite de PowerShell ici
Sous Windows 10, la commande Invite et l'invite powershell sont disponibles dans la barre de menus, pour les utilisateurs non administrateurs et les administrateurs. Le dossier de ces options sera défini sur le dossier actuellement sélectionné dans l'explorateur.
Pour la version suédoise au moins, le PowerShell est ouvert avec AltF+I. Pour un administrateur PowerShell c'est AltF+S+P.
Si ce ne sont pas les caractères corrects, vous pouvez maintenir la touche enfoncée. Alt clé pour voir les caractères corrects. il y aura un personnage superposant l'élément de menu pour chaque étape.
Je voulais que ce menu contextuel ne fonctionne que lorsque un clic droit et maintenant le 'SHIFT' qui est la manière dont le construit ' Ouvrez la fenêtre de commande ici 'le menu contextuel fonctionne.
Cependant, aucune des solutions fournies ne l'a fait et j'ai donc dû créer mon propre fichier .reg
. Copiez le fichier ci-dessous, enregistrez-le sous le format power-Shell-here-on-shift.reg
Et double-cliquez dessus.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Shell\powershell]
@="Open PowerShell here"
"NoWorkingDirectory"=""
"Extended"=""
[HKEY_CLASSES_ROOT\Directory\Shell\powershell\command]
@="C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%L'"
Essayez le PowerShell PowerToy ... Il ajoute un élément de menu contextuel pour Ouvrez PowerShell ici .
Vous pouvez également créer un raccourci qui ouvre PowerShell avec le dossier Démarrer dans en tant que dossier Projets.
C'est encore plus simple sous Windows 8.1 et Server 2012 R2.
Faites ceci une fois: Cliquez avec le bouton droit de la souris sur la barre des tâches, choisissez Propriétés. Dans l'onglet Navigation, activez [✓] Remplacez l'invite de commande par Windows PowerShell dans le menu lorsque je clique avec le bouton droit de la souris sur le coin inférieur gauche ou que j'appuie sur la touche Windows + X.
Ensuite, chaque fois que vous souhaitez une invite PowerShell, appuyez sur Win+X, I. (Ou Win+X, A pour une invite Admin PowerShell)
Il y a une extension de l'explorateur Windows faite par le mec qui fabrique des outils pour SVN qui ouvriront au moins une fenêtre d'invite de commande.
Je ne l'ai pas encore essayé, donc je ne sais pas si ça va faire l'affaire PowerShell, mais je voulais partager l'amour avec mes frères de Stack Overflow:
En ajoutant les clés de registre ci-dessous, sous Windows 10, j’ai réussi à obtenir l’option Ouvrir PowerShell ici dans mon SHIFT + RClick
menus contextuels. Copiez-les simplement dans un fichier bloc-notes vide, puis enregistrez-les au format .reg
fichier et exécutez le fichier pour ajouter la clé et il devrait fonctionner à partir de là. Certaines de ces autres réponses disent d’ajouter la clé dans HKCR\Directory\Shell mais j’ai trouvé que pour moi cela ne fonctionnait que si les clés entraient dans HKLM\LOGICIEL\Classes\Répertoire\Shell
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\Shell\powershell]
"Extended"=""
"NoWorkingDirectory"=""
@="Open PowerShell here"
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\Shell\powershell\command]
@="C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\powershell]
@="Open PowerShell here"
"Extended"=""
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"
"NoWorkingDirectory"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\powershell\command]
@="C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"
Voici un résumé concis (et mis à jour) des solutions précédentes. Voici ce qu'il faut faire:
Ajoutez ces chaînes et leurs clés parent respectives:
pwrshell\(Default) < Open PowerShell Here
pwrshell\command\(Default) < powershell -NoExit -Command Set-Location -LiteralPath '%V'
pwrshelladmin\(Default) < Open PowerShell (Admin)
pwrshelladmin\command\(Default) < powershell -Command Start-Process -verb runAs -ArgumentList '-NoExit','cd','%V' powershell
à ces endroits
HKCR\Directory\Shell (for folders)
HKCR\Directory\Background\Shell (Explorer window)
HKCR\Drive\Shell (for root drives)
C'est ça. Ajoutez les chaînes "étendues" pour que les commandes ne soient visibles que si vous maintenez la touche "Shift" enfoncée, tout le reste est superflu.
Une autre option est l'excellent Elevation PowerToys de Michael Murgolo sur TechNet à l'adresse http://technet.Microsoft.com/en-us/magazine/2008.06.elevation.aspx .
Ils incluent PowerShell Prompt Here et PowerShell Prompt Here en tant qu'administrateur.
Une alternative assez simple consiste à appeler PowerShell via un raccourci. Il existe une propriété de raccourci intitulée "Démarrer dans" qui indique le répertoire (dossier) à utiliser lorsque le raccourci est appelé.
Si la zone Démarrer dans est vide, cela signifie que vous utilisez le répertoire actuel.
Lorsque vous créez un raccourci vers PowerShell pour la première fois, le champ Démarrer dans spécifie le répertoire de base. Si vous effacez la boîte de départ, vous avez maintenant un raccourci vers Powershell qui ouvre PS dans le répertoire actuel, quel qu’il soit.
Si vous copiez maintenant ce raccourci dans le répertoire cible et utilisez Explorer pour l'appeler, vous démarrerez un PS pointé vers le répertoire cible.
Il y a déjà une réponse acceptée à cette question, mais je propose cela d'une autre manière.
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
if(-not (Test-Path -Path "HKCR:\Directory\Shell\$KeyName"))
{
Try
{
New-Item -itemType String "HKCR:\Directory\Shell\$KeyName" -value "Open PowerShell in this Folder" -ErrorAction Stop
New-Item -itemType String "HKCR:\Directory\Shell\$KeyName\command" -value "$env:SystemRoot\system32\WindowsPowerShell\v1.0\powershell.exe -noexit -command Set-Location '%V'" -ErrorAction Stop
Write-Host "Successfully!"
}
Catch
{
Write-Error $_.Exception.Message
}
}
else
{
Write-Warning "The specified key name already exists. Type another name and try again."
}
Vous pouvez télécharger le script de détail à partir de comment démarrer PowerShell à partir de Windows Explorer
Il ouvre la fenêtre PowerShell en appuyant sur Ctrl-Alt-T
. (Testé avec Win10)
Si votre "fenêtre active" est une fenêtre Windows de l'Explorateur Windows, PowerShell est ouvert dans le dossier dossier actuel. Sinon, ouvrez simplement PowerShell dans certains dossier par défaut.
Utilisation: 1) Installez AutoHotkey, puis copiez-le dans myscript.ahk 2) Remplacez <DefaultPath>
avec le chemin de votre choix. 3) Exécutez le script.
; Ctrl-Alt-T opens PowerShell in the current folder, if using Windows Explorer. Otherwise, just open the Powershell.
^!T::
if WinActive("ahk_class CabinetWClass") and WinActive("ahk_exe Explorer.exe")
{
KeyWait Control
KeyWait Alt
Send {Ctrl down}l{Ctrl up}
Send powershell{Enter}
}
else
{
psScript =
(
cd 'C:\<DefaultPath>'
ls
)
Run "%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe" -NoExit -Command &{%psScript%}
}
return