Как указать ^ "пробел в то же время в командной строке Windows

У меня трудности с пониманием, как указать специальные символы ^ а также " в качестве параметров в командной строке Windows. Я использую gnuwin32's diff в Win 7 . Оно имеет -I опция, которая принимает регулярное выражение из командной строки. Я хочу призвать diff в пакетном файле с указанием регулярного выражения. Тем не менее, мое регулярное выражение является сложным с ^ " и специальные символы пробела внутри него:

^[ \t]*#[ \t]*include[ \t]+"c:\\program files

Я не могу понять правила Windows для указания специальных символов в командной строке в этом случае, который имеет специальные правила, касающиеся ^ а также ", Как я собираюсь указать вышеупомянутое регулярное выражение в командной строке?

Я думаю, это должно выглядеть так:

diff -I "^[ \t]*#[ \t]*include[ \t]+"c:\\program files" file1 file2

Но " в середине беспорядок все дело. Как я должен иметь дело с ^ а также "?

1 ответ

После некоторых исследований и испытаний, это должно быть регулярное выражение:

diff -I "^[[:space:]]*#[[:space:]]*include[[:space:]]\+\"c:\\\\program file" file1 file2

Для одной вещи, diff использует grep регулярное выражение стиля, которое не поддерживает стиль Perl \t последовательность. Нам нужно использовать \" указать литерал ",

Кроме того, не используйте командный файл Windows для проверки параметров, передаваемых программе, как я.

Другими словами, никогда не думайте, что этот пакетный файл diff.bat с несколькими echos может помочь вам проверить, какие аргументы командной строки использовать:

echo %1
echo %2
echo %3
echo %4

Напишите и скомпилируйте программу для этого и сделайте так, чтобы она сбрасывала аргументы командной строки.

Другие вопросы по тегам