Как указать ^ "пробел в то же время в командной строке 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
с несколькими echo
s может помочь вам проверить, какие аргументы командной строки использовать:
echo %1
echo %2
echo %3
echo %4
Напишите и скомпилируйте программу для этого и сделайте так, чтобы она сбрасывала аргументы командной строки.