Разобрать цитируемый текст из пакетного файла - PullRequest
3 голосов
/ 15 мая 2009

Я хотел бы сделать простой анализ внутри командного файла.

Учитывая строку ввода:

Foo: Lorem Ipsum 'The quick brown fox' Bar

Я хочу извлечь цитируемую часть (без кавычек):

The quick brown fox

Использование только стандартных инструментов командной строки, доступных в Windows XP.

(Я посмотрел на find и findstr, но они не кажутся достаточно гибкими, чтобы вернуть только часть строки.)

1 Ответ

4 голосов
/ 15 мая 2009

Примерно так будет работать, но только если в строке ввода есть одна строка в кавычках:

@echo OFF
SETLOCAL enableextensions enabledelayedexpansion

set TEXT=Foo: Lorem Ipsum 'The quick brown fox' Bar
@echo %TEXT%

for /f "tokens=2 delims=^'" %%A in ("abc%TEXT%xyz") do (
    set SUBSTR=%%A
)

@echo %SUBSTR%

Вывод, строка в кавычках в середине:

Foo: Lorem Ipsum 'The quick brown fox' Bar
The quick brown fox

Вывод, строка в кавычках впереди:

'The quick brown fox' Bar
The quick brown fox

Вывод, строка в кавычках в конце:

Foo: Lorem Ipsum 'The quick brown fox'
The quick brown fox

Вывод, вся строка в кавычках:

'The quick brown fox'
The quick brown fox
...