Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   как быть если разделители кавычки("):for /f "tokens=1,2,3 delims=? (http://forum.oszone.net/showthread.php?t=99257)

akrav 28-01-2008 14:10 727330

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

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

Creat0R 30-01-2008 05:40 728676

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 738455

:search:

Bruce Wayne 07-08-2013 15:55 2197982

На тот случай, если кому-то когда-нибудь потребуется:

Код:

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

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

Bruce Wayne 07-08-2013 16:04 2197985

Вложений: 1
А вот вариант для нескольких токенов:

Код:

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 2198296

Цитата:

Цитата Bruce Wayne
Код:

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--%%с


Время: 05:31.

Время: 05:31.
© OSzone.net 2001-