1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VSCode起動時にワークスペースを選んでpecoるbat

Posted at

はじめに

VSCodeのワークスペースが増えてお困りではありませんか?

バッチファイル(bat)を介してVSCodeを起動することにより、起動時にワークスペースを選択できるbatを紹介します。ワークスペースが増えてきたとき、いつでもワークスペースを切り替えられると便利です。

batの構成図

ワークスペースの保存ファイルを一箇所のフォルダにまとめておきます。一覧をもとに入力キーでフィルターしながら選択する機能がpecoにあります。さいごに、選んだワークスペースをVSCodeの起動コマンドに渡します。

batの現物

@echo off
setlocal
set WORKSPACE_FOLDER=C:\VSCodeWorkspaces

for /f "usebackq delims=" %%A in (`dir /b/o-d %WORKSPACE_FOLDER%\*.code-workspace ^| peco`) do set WORKSPACE_FILE=%%A

@echo WORKSPACE_FILE is "%WORKSPACE_FILE%"

if "%WORKSPACE_FILE%"=="" (
	code
) else (
	code "%WORKSPACE_FOLDER%\%WORKSPACE_FILE%"
)

batの解説

setlocalは環境変数のローカライズを開始します。呼び出し元に環境変数が反映されてしまうのでsetlocalを付けたほうがいいです。

WORKSPACE_FOLDER は変数です。

変数WORKSPACE_FOLDERにワークスペースの保存ファイルをまとめて置いてあるフォルダを指定してください。

for %%A in (...) do set はコマンドの実行結果を変数に格納します。

dir の引数は次の通りです。

  • /B ファイル名のみを表示します。
  • /O ファイル名を並べ替えて表示します。Dは日時を古いほうからにし、-は順番を逆にします。

pecoの選択画面でエスケープやControl-Cを押下したとき"%WORKSPACE_FILE%"""にな って引数なしで前回の状態で起動し、コマンドウィンドウを閉じたときは起動しません。

実はpecoは複数選択が可能になっていまして、複数選択した場合は最も下の選択が起動します。--select-1を使えば1つのみ選択にできるかと思いましたが、入力行数が1つのみのときに選択をスキップする機能でした。

codeVSCodeを起動します。

拡張機能「Project Manager」と比較

こちらは評価の高い拡張機能ですが、起動時にワークスペースを選択できるbatのほうが気に入っています。:relaxed:

Project Managerにはワークスペースをタグ付けする機能がありますが、ワークスペースの名前をつけてpecoで選ぶことで代替できます。

(参考)バックアップを取るbat

batで連想したのですが、ファイルのバックアップを取るbatこの記事のコメントで紹介されていて、最初のコメントのbat(現在の日時を取得するほう)が便利で使っています。:blush:

右クリックの「送る」(SendTo)で使っています。

(宣伝)ファイルのフォルダをワークスペースに1クリックで追加する拡張機能

VSCodeの拡張機能Add This Folder To Workspaceを以前に作りました1

ファイルの右クリックからVSCodeで開いた後、ファイルのあるフォルダをワークスペースに追加するときに、ダイアログ画面をスキップさせたいと思って作りました。クリック1回で追加できます。:alarm_clock:

さいごに

起動時にワークスペースを選んでVSCodeを起動するバッチファイルを紹介しました。

batが誰かの役に立てれば幸いです。:hugging:

  1. 更新してませんが :sleepy:

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?