Doskey コマンドで読み込ませるマクロファイル中のコメントアウト
コマンドプロンプトは、一部の記号文字が無視されるので、Doskey
コマンドで読み込ませるマクロファイルの中に、コメントアウトのように使えるみたい。
Doskey
コマンドと、コマンドプロンプトにおけるエイリアスは以下の記事をドウゾ。
行頭に書いて無視される記号 (独自調べ)
- セミコロン
;
- イコール
=
- カンマ
,
- アットマーク
@
このあたりはバッチファイルなんかに書いても行頭の記号を認識しないので、
; Rem コメント
のように書くことで完全にコメントアウトできる。
コロン :
も同様の動きをするが、これはラベルとして扱われていると思われるので、余計な影響をなくすためここからは外しておいた。
マクロファイル内でのコメント定石
調べたところ、セミコロンとイコール ;=
を繋げてコメントアウトライクに書く手法が多く使われているみたい。
;= Rem ココはコメント。
;= Rem コピーのエイリアス
cp=copy
;= Rem セミコロンの初期化
;=
マクロファイルの最終行に ;=
だけの行を置いておくことで、;
を空っぽのエイリアスとして再定義して終わらせると安全っぽい。
- 参考 : Support comments in /config/aliases · Issue #286 · cmderdev/cmder · GitHub
- 参考 : Doskey Macros - Ben's Writing
-
It abuses the fact that the command prompt in Windows will silently eat the ';=' prefix, while doskey will treat it as a macro being re-defined over and over again.
-
- 参考 : Doskey - recall commands - Windows CMD - SS64.com
-
Doskey macro files do not support comments, but you can work around this by creating a fake macro called ; and repeatedly assigining your comment text, if you do this, always end with the line ;= to delete the fake macro.
-
- 参考 : Semicolon, Equal Sign As Arguments in Batch File
- 参考 : 1行で複数のコマンドを連続して実行する(WinXP) - ふとらの日記
- 参考 : バッチメモ(Hishidama's bat-file Memo)
そういえば Echo
コマンドの直後に開始カッコ (
を書いても動くんだよね。コレがなかなか難読化させてくれて面白い。
Rem 引数が空の時に空行として扱うようにするときは、大抵ピリオドを使うことが多いが…
Echo.%HOGE%
Rem ピリオドではなく開始カッコを使っても良いので、For 文の中などで使うとカッコの数をおかしくできる
Echo(%HOGE%