序文
2024/10/02にPowerToysのver0.85.0が出ましたね。
新しく追加された機能に new+ があります。
そこでよく使う、*.h, *.cppを効率よく作りたかったので、備忘録も兼ねてまとめました。
あと、この機能に対応しているのはWin11以降です。
※執筆者は全くと言っていいほど、バッチファイルを知りません。間違っている情報があれば教えてください。
PowerToys
new+ は Microsoft公式で提供されているアプリケーションでいろいろ便利です。
個人的にはColorPicker系とruler系を使っています。
Windowsの不満としては、txtなどの基本的なファイルを作成するにはよいのですが、対応していないファイルを作成するのは面倒なのです。
それを改善する機能が今回、追加されました。自分で追加すればですが。
ただ、職場のPCはWin10、、、関係ないですね。
問題点
Visual StudioのUIからファイルを作成すると、階層構造が保たれないのでよくわからない場所にファイルが作成されてしまうのはあるあるですよね??
そのため、いつも.h/.cppを作りたいフォルダに行って一個ずつ作っていました。
なお、.txtから作るので、毎回 pragma once
を書いたり、 #include "*.h"
を書かなければいけないので、面倒でした。
解決策
テンプレートのディレクトリに以下を作成する。
テンプレートのディレクトリは、PowerToysから確認するか、適当なフォルダを右クリック-> 新規+ ->テンプレートを開く からいけます。
ところで、new+ を新規+と訳すセンスには脱帽ですね。
@echo off
setlocal
SET INPUTSTR=
SET /P INPUTSTR="FileName?: "
IF "%INPUTSTR%"=="" GOTO :INPUT_CHECK
echo #pragma once>"%INPUTSTR%.h"
echo #include "%INPUTSTR%.h">"%INPUTSTR%.cpp"
del "%~f0"
endlocal
行っていることは、
FileNameを変数に受け取り、
#pragma onceを書き込んだ(hoge).hを作成し、
#(hoge).hをincludeしたcppを作成する。
機能
バッチファイルを実行すると、プロンプトが起動するのでヘッダとcpp名に適当な名前を付けるだけです。最後にプロンプト自身はdestroyされます。
そのほかのファイル
中身を空白で作りたいファイルは
type nul > ファイル名とすればよいです。
markdownの場合
@echo off
setlocal
SET INPUTSTR=
SET /P INPUTSTR="FileName?: "
IF "%INPUTSTR%"=="" GOTO :INPUT_CHECK
type nul > "%INPUTSTR%.md"
del "%~f0"
endlocal
あとがき
これを実行するだけでプロンプトまで行けるのがあれば教えてください。
単純にコピーっぽいので難しい?