Пакетное экранирование символов

Я достаточно опытен в написании пакетных сценариев для 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 так много исключений, что я даже соглашусь на хорошую шпаргалку.

40
задан HairOfTheDog 27 July 2011 в 01:34
поделиться