Показать полную графическую версию : как быть если разделители кавычки("):for /f "tokens=1,2,3 delims=?
Добрый день! Есть файл, в котором значения в строках разделены кавычками (“). Необходимо эти значения вытащить и проанализировать. Допускает ли delims значения равные кавычкам(")? Если да, то как это грамотно записать?
так не работает: for /f "tokens=1,2,3 delims=""
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
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:
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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.