VSCodeの拡張機能を自動インストールするバッチファイルを生成するCLIアプリ作った　for Windows

# 背景
先日、MacでVSCodeの拡張機能を自動インストールするバッチファイルを作ったのですが、Windowsバージョンがありませんでした、、、😭
そこで、更にレベルアップしてバッチファイルそのものを作るプログラムを作りました💪

「バッチファイルって何？」という方は以下の記事にて説明しておりますので、
ご確認いただけますと幸いです🌸

https://qiita.com/yuuki-h/items/8b392fb4567d29728c33

# 内容
以下の２本立てです！
1. バッチファイルを生成するプログラム
1. 実際のバッチファイル
[Github URL](https://github.com/YuukiHayashi0510/ExtensionsForVScode-bat)
↑のGithubでリポジトリごとダウンロードすれば、
バッチファイルとバッチファイル生成プログラムが手に入ります！
（cloneしてもOKです！）

## 1. バッチファイルを生成するプログラム
### 動作フロー
1. ファイル名をCLIで取得
1. 拡張機能を入力された分だけ取得
1. バッチファイルに書き込む内容の作成
1. file作成, 書き込み, 終了

このように動作します。
一応、皆さんに使用していただく前提で作っているので
簡単にインタラクティブなプログラムを作成しています⭐️
（要は、ミス入力とかを弾くなど、ユーザと会話形式で動くようなプログラムってことです！）
```python:bat_create.py
import os

# ファイル名をCLIで取得
path = ""
while 1:
    file_name = input("ファイル名を入力してください: ")
    path= "./"+file_name+".bat"
    command = input(path+"でよろしいですか？[y/n]")
    if command == 'y':
        break

# 拡張機能を入力された分だけ取得
print("拡張機能を改行ありで貼り付けて下さい\n[Enterで入力終了します]")
exts = []
tmp = "true"
while tmp:
    tmp = input()
    if not tmp:
        break
    exts.append(tmp)

exts_n = len(exts)
print("入力された機能数は"+str(exts_n)+"でした")

# バッチファイルに書き込む内容の作成
body = "@echo off\necho start to install VSCode extentions.\n"
for i in range(exts_n):
    body+="code --install-extension "+exts[i].replace("\"", "")+" & "
    if i==exts_n-1:
        body+="echo finish installing... & pause\n"
body+="exit"

# file作成, 書き込み, 終了
file = open(path, 'w')
file.write(body)
file.close()
print(path+"にファイルを生成しました。")
```
また、上記のプログラムに格納する入力は以下の形式です。
`vscode-icons-team.vscode-icons`
この**作成者名.機能名**の形式で拡張機能を得るために
以下のコマンドをターミナル、CMDで実行します。
```zsh:zsh
$ code --list-extensions
```
↑のコマンドで取得した
**拡張機能リストから自動インストールさせたい拡張機能を選んで貼り付けるだけ**で
あなただけのバッチファイルを作れますよ！

## 2. 実際のバッチファイル
&で複数のコマンドを実行できるようにしています！
また、pauseで実行が完了した後にウィンドウを自動で削除する機能を止めています。
```bat:rails-ext.bat
@echo off
echo start to install VSCode extentions.
code --install-extension aki77.rails-db-schema & code --install-extension aki77.rails-routes &code --install-extension bung87.rails &code --install-extension bung87.vscode-gemfile &code --install-extension CraigMaslowski.erb &code --install-extension ecmel.vscode-html-css &code --install-extension formulahendry.auto-close-tag &code --install-extension formulahendry.auto-rename-tag &code --install-extension Hridoy.rails-snippets &code --install-extension jduponchelle.rainbow-end &code --install-extension jeff-hykin.better-cpp-syntax &code --install-extension kaiwood.endwise &code --install-extension manasxx.background-cover &code --install-extension mosapride.zenkaku &code --install-extension MS-CEINTL.vscode-language-pack-ja &code --install-extension oderwat.indent-rainbow &code --install-extension pranaygp.vscode-css-peek &code --install-extension rebornix.ruby &code --install-extension shardulm94.trailing-spaces &code --install-extension Vense.rails-snippets &code --install-extension VisualStudioExptTeam.vscodeintellicode &code --install-extension vscode-icons-team.vscode-icons &code --install-extension wingrunr21.vscode-ruby &code --install-extension xabikos.JavaScriptSnippets &code --install-extension Zignd.html-css-class-completion & echo finish installing!!!! & pause
exit
```
以上で終わりです！
バッチファイル生成するプログラム自体がほしい！という人は
以下のGithubからダウンロードしましょう！
[Github URL](https://github.com/YuukiHayashi0510/ExtensionsForVScode-bat)
ちょっとした自動化ですが、自動化は楽しいですね✨

# 参考文献

https://qiita.com/fuji44/items/e0b946674be484b9a9d8