2011年10月3日月曜日

【技術情報】windowsコマンドのエスケープシーケンス

ECHO ()
を実行すると
----------実行結果-----------
()
-----------------------------
となります。

しかし、
FOR %%I IN (XXXX) DO (
ECHO ()
ECHO %%I
)
を実行すると、
----------実行結果-----------
(
%I
-----------------------------
となりますが、おそらく、)の閉じかっこでFORが閉じられている為にこのような動きとなっていると
考えられます。

じゃあ)をただの文字列として認識させるには?


その答えが「^」
FOR %%I IN (XXXX) DO (
ECHO (^)
ECHO %%I
)
を実行すると、
----------実行結果-----------
()
XXXX
-----------------------------
コマンドの場合オールマイティなエスケープシーケンスはないようですが、とりあえず「)」の場合は「^」をつければOKなようです。


「)」については、その前のコマンド処理などで(が使われているとたとえECHOの引数として使われていても、閉じかっことしての機能が優先されるようです。

0 件のコメント:

コメントを投稿