Войти

Показать полную графическую версию : Спец символы в cmd ?


obli
02-10-2010, 21:05
Есть текстовый 1.txt файл типа
111 555 333 444
222 333 666 666

хочу его разбить на строки спец символом переводом каретки и присвоить строки переменным таким примерно скрптом
for /f "delims=/n tokens=1" %%a in (1.txt) do @set string1=%%a
for /f "delims=/n tokens=2" %%a in (1.txt) do @set string2=%%a

но ничего касающего спец символов в cmd я не обнаружил может кто чего посоветует.

amel27
03-10-2010, 05:52
присвоить строки переменным »
FOR и без всяких триксов бьёт построчно:
@echo off
setlocal EnableDelayEdexpansion

for /f "delims=" %%a in (1.txt) do set /a $n+=1& set "string!$n!=%%a"
set string&pause>nul

obli
03-10-2010, 13:23
странно а я думал по умолчанию у for в качестве разделителей пробел и таб

amel27
03-10-2010, 13:54
у for в качестве разделителей пробел и таб»эти разделители применяются УЖЕ к строке, все штатные средства работают с текстом только построчно

obli
03-10-2010, 14:23
Еще один вопрос а тут в качестве множество можно использовать переменную ?

for {%переменная|%%переменная} in (множество) do команда [ПараметрыКоманднойСтроки]

переменную которая содержит строку 111 555 333 444 чтоб потом значения
этой строки 111 555 333 и 4444 присвоить отдельным переменным

amel27
03-10-2010, 14:41
obli, не уверен что точно понял вопрос, но перебрать можно так:
for %%i in (раз два три) do echo %%i

obli
03-10-2010, 14:46
я исправил предыдущий пост чтоб немного поясней было

вроде так я должен получить 2 и 3 параметр из строки 111 555 333 444 которая находится в %string1


for /L "tokens=2" %%a in (!%string1%!) do @set 2=%%a
for /L "tokens=3" %%a in (!%string1%!) do @set 3=%%a

но увы ругается "tokens=2" was unexpected at this time

amel27
03-10-2010, 15:17
@echo off

set string1=111 555 333 444
for /f "tokens=2,3" %%a in ("%string1%") do (
set "p2=%%a"
set "p3=%%b"
)
set p2
set p3
pause>nul

obli
03-10-2010, 15:36
да я бы врядли сам бы додумал Агромное мерси так бы ещеб неделю мучился

amel27
03-10-2010, 15:47
obli, да прибудет с вами HELP! ))HELP FOR

obli
03-10-2010, 16:29
p2 и p3 локальными получаются а если их в глобальные

PS HELP FOR курит нихрена он мне не помог только головная боль от него .

amel27
03-10-2010, 16:43
HELP FOR курит нихрена он мне не помог только головная боль от него »эт вы батенька зря... а p1 и p2 в посте #8 как раз глобальные, так как команда SETLOCAL не использовалась... если вы про подстановку в цикле, то вместо %p1% нужно использовать !p1! (подробно в справке: "HELP SET")




© OSzone.net 2001-2012