カレントディレクトリをPowerShellやコマンドプロンプトで開く 

Windows10において、エクスプローラで開いているフォルダをカレントディレクトリとしてPowerShellやコマンドプロンプトを開く方法です。

# リボンから開く

エクスプローラ右上の「ファイル」をクリックし、「Windows PowerShellを開く(R)」を選択します。

![cmdo100.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/484a6a7f-328e-c700-544e-6fa830799346.png)

※「クイック アクセス ツールバー」に登録するとすぐに開けます。

1. 上記と同様にメニューを表示させ「Windows PowerShellを開く(R)」を右クリックし、「クイック アクセス ツールバーに追加(A)」を選択します。これで登録完了です。「Windows PowerShellを管理者として開く(A)」を登録したい場合も同じ手順です。

    ![cmdo110.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/a13bb529-6f7e-6766-5656-4f26295c7b26.png)

2.  PowerShellを開きたい場合は「クイック アクセス ツールバー」上のアイコンをクリックします。

    ![cmdo120.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/ba02a25d-093d-c8e0-f929-72a2ae05238e.png)

# アドレスバーから開く


*  方法その1  
   アドレスバーに「cmd」と入力してEnterを押します（コマンドプロンプトが開きます）。PowerShellを開きたい場合は「powershell」と入力してEnterを押します。

   ![cmdo010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/98a17385-19aa-4f8f-6892-dd201e19349d.png)

*  方法その2  
   上記の方法でコマンドプロンプトを一度開き、閉じます。「F4」を押すとアドレスバーがアクティブになり履歴が出てくるので下矢印を押して履歴を選択してEnterを押します。  
   ![cmdo020.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/81c2cb2c-5c0e-c316-eff4-851047f9a7e8.png)  
   履歴は下記レジストリに保存されています。  
   HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths  

* 方法その3  
   「F4」でアドレスバーに移動し履歴参照モードにします。「Esc」で履歴参照モード解除後、「cmd」と入力してEnter。  

* 方法その4  
  「Alt+D」または「Ctrl+L」でアドレスバーに移動後、「cmd」と入力してEnter。  

## バッチファイルを利用する

バッチファイルを利用することで管理者権限で開いたりできます。事前に以下のファイルをパスの通った場所に入れておきます。  

```bat:cmda.bat
cmd /c start /min powershell Start-Process cmd '/s /k cd /d "%CD%"' -Verb RunAs
```

```bat:ps.bat
cmd /c start /min powershell Start-Process cmd '/s /c bootPowerShell.bat "%CD%"'
```
```bat:psa.bat
cmd /c start /min powershell Start-Process cmd '/s /c bootPowerShell.bat "%CD%"' -Verb RunAs
```

```bat:bootPowerShell.bat
cd /d "%*"
cmd /s /c start powershell -NoLogo
```
* コマンドプロンプトを管理者権限で開きたい場合は、アドレスバーに「cmda」と入力してEnter。  
* PowerShellを開きたい場合は、アドレスバーに「ps」と入力してEnter。  
* PowerShellを管理者権限で開きたい場合は、アドレスバーに「psa」と入力してEnter。  

# スタートメニューから開く

1. アドレスバーをアクティブにして「Ctrl+C」でパスをコピーします。

    ![cmdo030.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/abf550a6-b4cc-b9da-7127-9c86fe29ff8e.png)

    またはアドレスバーの右クリックから「アドレスのコピー(C)」を選択します。

    ![cmdo031.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/315dc253-7798-8b24-a747-7edff93c51b0.png)


2. 「Windowsキー」を押すと検索ボックスがアクティブになるので「cmd」と入力。最上部にコマンドプロンプトが出てくるのでEnter。

   :::note info
   管理者権限で起動する場合は「Enter」の代わりに「Ctrl+Shift+Enter」。
   :::

   ![cmdo040.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/2f7312e4-12bb-4591-1e7d-26f945165f28.png)

3. コマンドプロンプトが出てくるので「pushd 」と入力し「Ctrl+V」でパスを貼り付けてEnterを押します。

    ![cmdo050.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/47922c99-e889-5742-6854-c67e5e52f259.png)

# Windowsキー+Xから開く

Windowsボタンを右クリックするか「Windowsキー+X」を押してメニューを開きます。その後「コマンドプロンプト(C)」を選択します。あとは「スタートメニューから開く」と同じです。

![cmdo090.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/aafa0b5b-9685-3446-7920-c2db8396f2e9.png)

※ここに表示されるメニューをコマンドプロンプトにするかPowerShellにするかは設定で変更できます。

1. タスクバーを右クリックして「タスクバーの設定」を選択します。

    ![cmdo070.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/081d2f24-cf84-1160-d411-8a943262aa32.png)

2. 「コマンドプロンプトを Windows PowerShellに置き換える」のオンオフで設定を変更します。

    ![cmdo080.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/2001b2f0-7c8e-0b78-6651-619a3370cc3c.png)




# エクスプローラの余白のコンテキストメニューから開く

Shiftを押しながら余白を右クリックし、コンテキストメニューを表示させます。メニューから「PowerShell ウィンドウをここで開く(S)」を選択します。

![acmd010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/91af0103-5764-dfec-f88f-141ed3e370fa.png)

## レジストリを変更する

レジストリを変更することでメニューを追加することができます。

:::note warn
レジストリのことがよく分かっていない方は実施しないでください。
:::

### 事前準備

以下のファイルをパスの通った場所に入れて置きます。

```bat:bootPowerShell.bat
cd /d "%*"
cmd /s /c start powershell -NoLogo
```

```vb:bootCmdAdmin.vbs
Set objShell = CreateObject("Shell.Application")
Set WshShell = CreateObject( "WScript.Shell" )
If WScript.Arguments.Count <> 0 Then
	objShell.ShellExecute "cmd.exe", "/s /k pushd """ & WScript.Arguments(0) & """", "", "runas", 1
Else
	objShell.ShellExecute "cmd.exe", "/s /k pushd """ & WshShell.CurrentDirectory & """", "", "runas", 1
End If
```

```vb:bootPowerShell.vbs
Set objShell = CreateObject("Shell.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")

folder = objFSO.GetParentFolderName(WScript.ScriptFullName)
filename = objFSO.GetBaseName(WScript.ScriptFullName)
batchfile = folder & "\" & filename & ".bat" 

If WScript.Arguments(0) = "1" Then
	objShell.ShellExecute batchfile,WScript.Arguments(1), "", "runas", 0
Else
	objShell.ShellExecute batchfile,WScript.Arguments(1), "", "", 0
End If

```
### レジストリ(.reg)ファイル

* 以下はShiftキーを押しながら右クリックしたときに表示されるメニューに追加する例です。常に（Shiftキーを押さないときでも）表示させるときは`"Extended"=""`の1行を削除してください。  
* `(&W)`の部分は必要に応じて変更してください。  
* レジストリ登録時に日本語が文字化けしないように`UTF-16 LE`で保存します。
* 事前準備のファイルが`C:\work`に入っており、そこにパスが通っている前提です。通常は`C:\work`のような分かりにくい所にはパスは通さないと思うので適当に変更してください。

コマンドウィンドウをここで開く
```:prompt.reg
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\prompt]
@="コマンドウィンドウをここで開く(&W)"
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\prompt\command]
@="cmd.exe /s /k cd /d \"%V\""
```

コマンドウィンドウを管理者としてここで開く
```:promptAdmin.reg
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\promptAdmin]
@="コマンドウィンドウを管理者としてここで開く(&W)"
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\promptAdmin\command]
@="wscript C:\\work\\bootCmdAdmin.vbs \"%V\""
```

PowerShell ウィンドウをここで開く
```:PS.reg
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\PS]
@="PowerShell ウィンドウをここで開く(&W)"
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\PS\command]
@="wscript C:\\work\\bootPowerShell.vbs 0 \"%V\""
```

PowerShell ウィンドウを管理者としてここで開く
```PSAdmin.reg
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\PSAdmin]
@="PowerShell ウィンドウを管理者としてここで開く(&W)"
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\PSAdmin\command]
@="wscript C:\\work\\bootPowerShell.vbs 1 \"%V\""
```
# フォルダのコンテキストメニューから開く

Shiftを押しながらフォルダを右クリックし、コンテキストメニューを表示させます。メニューから「PowerShell ウィンドウをここで開く(S)」を選択します。

![acmd020.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3193449/7dd39724-691f-fa4e-9162-d73b31b12647.png)


## レジストリを変更する

レジストリを変更することでメニューを追加することができます。手順は[エクスプローラの余白のコンテキストメニューから開く](#エクスプローラの余白のコンテキストメニューから開く)と同じです。`HKEY_CLASSES_ROOT\Directory\Background`を`HKEY_CLASSES_ROOT\Folder`に変更してください。

# 参考

* [エクスプローラのアドレスバー活用法 - Qiita](https://qiita.com/kikuchi/items/26467221a7276d663c45)  
* [エクスプローラーのアドレスバーから管理者権限でコマンドプロンプトを起動する - Qiita](https://qiita.com/so_nkbys/items/47e32cbda6bb794c1cb6)  
* [Start-Process (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/start-process)  
* [メモ帳の文字コード既定値がUTF-8に、Windows 10「May 2019 Update」（3ページ目） | 日経クロステック（xTECH）](https://xtech.nikkei.com/atcl/nxt/column/18/00723/042300004/?P=3)  
* [「メモ帳」に多数の改善、BOMなしUTF-8がデフォルト保存形式に ～「Windows 10 19H1」 - 窓の杜](https://forest.watch.impress.co.jp/docs/news/1157696.html)  
* [ASCII.jp：Windowsにおけるフォルダーとディレクトリとは (1/2)](https://ascii.jp/elem/000/004/081/4081147/)  
* [ASCII.jp：エクスプローラーの右クリックメニューをカスタマイズする (1/2)](https://ascii.jp/elem/000/000/953/953807/)  
* [コマンドウィンドウをここで開くをwindows10で実現する最も簡単な方法 - じーろぐ](https://zlog.hateblo.jp/entry/2018/11/04/100000)  
* [エクスプローラーで表示しているフォルダをコマンドプロンプトで開いたり、アプリを起動したりする：Tech TIPS - ＠IT](https://atmarkit.itmedia.co.jp/ait/articles/2103/11/news024.html)  
* [エクスプローラーのキーボードショートカット全リスト：Tech TIPS - ＠IT](https://atmarkit.itmedia.co.jp/ait/articles/2010/01/news025.html)  
* [pushd／popdでフォルダーを移動する：Tech TIPS - ＠IT](https://atmarkit.itmedia.co.jp/ait/articles/0609/16/news022.html)  
* [キーボードだけでアプリを管理者権限で実行するには？ - 脱初心者！すぐに役立つショートカットキー - 窓の杜](https://forest.watch.impress.co.jp/docs/shseri/usefulkeys/1431446.html)  
* [エクスプローラのアドレスバーを活用する方法 - 週刊アスキー](https://weekly.ascii.jp/elem/000/001/436/1436833/)  
* [管理者権限でコマンドプロンプトを開く VBScript をエクスプローラの右クリックで開く( そのフォルダで開く )方法 : logical　error](https://logicalerror.seesaa.net/article/379204614.html)