Войти

Показать полную графическую версию : как быть если разделители кавычки("):for /f "tokens=1,2,3 delims=?


akrav
28-01-2008, 14:10
Добрый день! Есть файл, в котором значения в строках разделены кавычками (“). Необходимо эти значения вытащить и проанализировать. Допускает ли delims значения равные кавычкам(")? Если да, то как это грамотно записать?
так не работает: for /f "tokens=1,2,3 delims=""

Creat0R
30-01-2008, 05:40
akrav,
С батниками давно дело не имел, но помню что для отмены спец. символов, нужно подставлять символ ^.

for /f "tokens=1,2,3 delims=^""

хотя сомневаюсь что сработает :no: ...

Можно в принципе заменить кавычку другим символом, и потом обработать циклом через этот символ...

For /F "tokens=1,2,3 delims=" %%i In (MyFile.txt) Do Set Var=%%i

Set Var=%Var:"=¶%
For /F "delims=¶" %%j In ("%Var%") Do Echo %%j

akrav
12-02-2008, 12:02
:search:

Bruce Wayne
07-08-2013, 15:55
На тот случай, если кому-то когда-нибудь потребуется:

set a="123"
echo %a%
for /f delims^=^"^ tokens^=1 %%i in ("%a%") do echo %%i

Правда, работает только для одного токена.

Bruce Wayne
07-08-2013, 16:04
А вот вариант для нескольких токенов:

for /f "delims=" %%i in (text.txt) do (
set V=%%i
call set V=%%V:"=µ%%
for /f "tokens=2,6,8 delims=µ" %%a in ('call echo.%%V%%') do (echo %%a
echo %%b
echo %%c))
)

P. S. Файл просто для большей наглядности :teeth:

amel27
08-08-2013, 08:59
set a="123"
echo %a%
for /f delims^=^"^ tokens^=1 %%i in ("%a%") do echo %%i
Правда, работает только для одного токена. »не только для одного:
for /f tokens^=1^,2^,3^ delims^=^" %%a in ("1""2""3") do echo %%a--%%b--%%с




© OSzone.net 2001-2012