2016-11-01 10 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

Может * NIX версии SED ручки встроенных комментариев? – 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

Удвоение скобок в комментариях действительно работает, если каждая из результирующих переменных не определена. Например, '% = %% не существует. %% =%' действительно, поскольку ни один из '% =%', '% не существует%' или '% =%' определены. Однако '% = %% windir %% =%' недействителен, так как определяется '% windir%'. –