背景
- cmdコマンドのようにエクスプローラーのアドレスバーから「今いるディレクトリ」をVSCodeに渡したい
- エクスプローラーを開いている状態から以下の操作をしたくない
- 右クリックから
Codeで開く - VSCodeを開いてからフォルダを開く(
ctrlkctrlo)
- 右クリックから
- エクスプローラーを開いている状態から以下の操作をしたくない
- 任意の文字列で起動+コマンドプロンプトを非表示を両立したい
準備(高速)
右クリックからCodeで開くことすら面倒くさいあなた(私1)に向けて
必要なファイル作成とPathを通すスクリプトです。
PowerShellで2ファイルを配置したいディレクトリに移動してコピペしてください。そのディレクトリにPathが通ります。
$scriptDir = (Get-Location).Path
$vbsContent = @"
Set ws = CreateObject("WScript.Shell")
ws.Run "code .", 0, False
"@
Set-Content -Path "$scriptDir\vsc.vbs" -Value $vbsContent
$batContent = 'vsc.vbs'
Set-Content -Path "$scriptDir\vsc.bat" -Value $batContent
$currentPath = [System.Environment]::GetEnvironmentVariable("Path", "User")
# 既にPathに登録されているかチェック
if ($currentPath -like "*$scriptDir*") {
Write-Host "Path is already set."
} else {
$newPath = $currentPath + ";" + $scriptDir
[System.Environment]::SetEnvironmentVariable("Path", $newPath, "User")
Write-Host "Added '$scriptDir' to Path."
}
準備
準備(高速) を手作業で行う方法です。
パスが通ったディレクトリに以下の2ファイルを作成します。
(私はC:\scriptsをPathに追加しています。)
ファイル名はお好みで
vsc.bat
vsc.vbs
vsc.vbs
Set ws = CreateObject("WScript.Shell")
ws.Run "code .", 0, False
使用方法
- アドレスバーをフォーカスする(
AltD) -
vsc(またはお好みのファイル名)を打ち込んで確定 - VSCodeでディレクトリが開かれる
解説
.bat
アドレスバーから呼び出されるファイルです。
vbsファイルを呼び出します。
.vbs
code .を実行します。
引数に0を与えることでウィンドウを非表示に出来ます。
また、Falseを与えるとVSCodeの終了を待たずに処理を完了させることができます。
おわりに
参考記事で紹介されているcmd /k code. & exit等をエイリアス登録してもうまくいくかもしれません!
(永続化が面倒で、手が出せてません...)
参考
-
前のpcに導入してたやつ(この記事の内容)を使いたいなーと思って3ヶ月経ちました。 ↩
