2016-11-01 14 views
0

バッチファイルコマンド内にコメントを付けることが可能かどうかは疑問です。具体的には、私は次のような長いSEDコマンドがあります。複数行コマンドのバッチコメント

@SED -r -e "s/.../.../"^ 
    -e "s/.../.../"^ 
    -e "s/.../.../"^ 
    fileName >outFileName 

を私は、次の例に示すように、「-e」オプションのそれぞれにコメントを追加したいと思います:

:: Option #1: At the end of the line 
@SED -r -e "s/.../.../"^ // First comment 
    -e "s/.../.../"^  // Second comment 
    -e "s/.../.../"^  // Third comment 
    fileName >outFileName 

:: Option #2: Between lines 
@SED -r 
    @REM First comment 
    -e "s/.../.../"^ 
    @REM Second comment 
    -e "s/.../.../"^ 
    @REM Third comment 
    -e "s/.../.../"^ 
    fileName >outFileName 

これを達成する方法はありますか?

+0

SEDハンドルインラインコメントの* NIXのバージョンはできますか? – SomethingDark

答えて

5

これを試してください。私はsedをしていないので、私はちょうどエコーでテストしました。

@echo off 
:: Option #1: At the end of the line 
echo SED -r -e "s/.../.../" %= First comment =%^ 
    -e "s/.../.../" %= second comment =%^ 
    -e "s/.../.../" %= third comment =% 

:: Option #2: Between lines 
echo SED -r^ 
    %= First comment =%^ 
    -e "s/.../.../"^ 
    %= second comment =%^ 
    -e "s/.../.../"^ 
    %= third comment =%^ 
    -e "s/.../.../" 

pause 

出力

SED -r -e "s/.../.../"  -e "s/.../.../"  -e "s/.../.../" 
SED -r  -e "s/.../.../"  -e "s/.../.../"  -e "s/.../.../" 
Press any key to continue . . . 
+0

コメントに '%'文字が含まれている場合、これを行う方法はありますか?私は遅延変数拡張を有効にしたので、おそらくコメントを '!= My Comment%=!'に変更できると思ったが、それはうまく動作していないようだ。 –

+0

@JeffG、正しい。 Delayed Expansionは、コード行を実行するときに変数を展開します。パーセント変数は、コードが実行される前に展開されます。 %をエスケープする唯一の方法は、それを倍にすることです。しかし、この場合、それはあなたのために働くつもりはありません。 – Squashman

+0

結果の変数が定義されていない限り、コメント内のカッコを2倍しても動作するように見えます。たとえば、 '%= %%は存在しません。%% =%'、 '%は存在しません '、'%=% 'のいずれも定義されていないので、%% =%'は有効です。ただし、 '%= %% windir %% =%'は '%windir% 'が定義されているので無効です。 –

関連する問題