Я достаточно опытен в написании пакетных сценариев для Windows, но даже спустя столько лет, как правильно экранировать символы, меня озадачивает. Это особенно сложно, когда вы пытаетесь найти правильный способ избежать регулярного выражения для использования с sed. Есть ли какой-нибудь инструмент, который может мне помочь? Может быть, что-то, что позволяет мне вставить "обычную" строку и выводит правильно экранированную версию этой строки?
Обновление: Я не хочу приводить пример, потому что не ищу ответа о том, как избежать одной конкретной строки. Я также не ищу решение, которое подойдет для одного конкретного приложения. Я ищу инструмент, который поможет мне получить правильный синтаксис escape для каждой строки, которая мне когда-либо понадобится, независимо от того, какой инструмент может использовать ее из командной строки.
При этом регулярное выражение, которое я действительно хочу, это
(^.*)(Form Product=")([^"]*") FormType="[^"]*" FormID="([0-9][0-9]*)".*$
Возьмите это истинное регулярное выражение (т. Е. Без экранирования, что касается BATCH) и оберните его в какой-нибудь синтаксис sed, например ssed "s @ --- Insert escaped regex здесь --- @http: // psph / \ 1 / \ 2 @ g ""% ~ 1 "
и, наконец, экранировать его ... Опять же, есть ли какой-нибудь инструмент, который может помочь в экранировании любой строки для использования в командной строке BATCH?
шт. В синтаксисе экранирования BATCH так много исключений, что я даже соглашусь на хорошую шпаргалку.