標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

個人的コマンドプロンプト開発体制

たぶん、同じようなことをしている人は皆無だと思うが…コマンドプロンプトベースでなんでもやる人の参考になるかも

基本

ベースはこれ。これで基本ツールをそろえる

作業ベース

作業フォルダーは %USERPROFILE%\go\src\github.com\zetamatta\project みたいな深い場所になる。そこへ cd (chdir) するのは毎回たいへん。そこで次のような nyagos の機能のいずれかを使って簡単に cd できるようにする

  • set "CDPATH=%USERPROFILE%\go\src\github.com\zetamatta" しておいて、zetamatta 以下のフォルダーには名前だけで cd できるようにする
  • lnk %USERPROFILE%\go\src\github.com\zetamatta\project ~\. して、ホームディレクトリの直下に project.lnk というショートカットを作る。これで cd project.lnk だけで移動できる
  • 一度移動したことのあるフォルダーであれば、cd -hディレクトリヒストリを出して、cd -2 とかで移動する

Visual Stdio で開発する場合は、ここから open *.sln すれば IDE が起動する

.NET 開発用に vo に用意

github.com

go.exe 風に Visual Studioコマンドラインツール devenv.com をコールするツール。 これのセールスポイントは、2010~2019までのどの Visual Stdio を呼ぶべきかをカレントディレクトリの .sln ファイルから判断して、その devenv.com を自動的に探し出して呼び出せるところ(%PATH% の設定は不要)。

ところで、なぜ、こんなものを用意したかというと、Visual Studio でも C++ の場合は「バッチビルド」で Debug 版/Release版全部のビルドを一度にできたりするが、.NET の場合はそういうのがないためだ。Debug 版でテストして、Release版を提出する時に切り替えを間違えたりすることがよくある。だが、コマンドプロンプトから vo rebuild -a で、全コンフィギュレーションに対してリビルドをかければ間違いはない

Makefile ではなくて、make.cmd

  • Go や devenv.com を使う限り、実はファイルのタイムスタンプを比較してコマンドを発行したりすることはほとんどない。
  • nmake.exe , mingw32-make.exe はどの環境でも入っているわけでないし、コマンド名が長い

なので、バッチファイルで十分だったりする。自分は次のような make.cmd をよく用意する

setlocal
call :"%1"
endlocal
exit /b

:""
:"all"
   vo rebuild -a
   exit /b

:"debug"
    vo build -d
    exit /b

:"release"
    vo build -r
    exit /b
  • %1"%1" のように二重引用符で囲んでいるのは、引数なしの make が実行された時も :"" というラベルに飛べるようにするため DEATH !

参考:/bin/shに慣れた人に贈るバッチファイルの書き方