菊池律です。

三日坊主にならないように、三日毎に書きます。

VSCodeで動的な名前のコピーファイルを作成したい。

最近C++競技プログラミングの問題を解こうという気持ちが強くなりました。
C++に触れていると

#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i=0;i<n;++i)
using ll=long long;
using P=pair<int,int>;

みたいなあらかじめ用意されたテンプレートをコピーしたりするのがしんどいので適当なコマンドを使って、コピーしたファイルを作成できないかなという次第です。 まず、上記のコードを書いたファイルを適当な名前で作成しておきます。

`text.cpp`という名前で作成しました

次にbatファイルを作成します。
`poke.bat`という名前で作成しました
この時、コピー元としているtext.cppの部分は、絶対パスとしています。
異なるディレクトリで実行しようとすると、「指定されたファイルが見つかりません。」となるためです。
最後に、作成したbatファイルのディレクトリのパスをローカルの環境変数に追加します。
`poke`という変数名で追加しました

試しに動かしてみます。
上手くできていたらpoke sampleと実行することで、現在のディレクトリ内にsample.cppというファイルが作成されるはずです。
`sample.cpp`というファイルが作成されました。
text.cppの内容もコピーされているようです

次に、異なるディレクトリでも実行できるかを検証します。
abc196の中に、example.cppというファイルを作成してみます。
`example.cpp`というファイルが作成されました。

まとめ

C++競技プログラミングを始めようと思うと、提出したコードをまとめて綺麗に保存するのがまあまあ面倒くさく、コマンドでおしゃれに、テンプレコピー+任意の名前のファイル作成を実行したかったので、うまくいってそうで良かったです。もしかしたらbatファイル内に直接テキストを書き込むみたいなやり方もあるかもしれないのですが、こっちの方がスムーズにいけたのでこの方法を選びました。(やり方教えてくれると嬉しいです)