CMD/BAT - [решено] For, чтение двух переменных с каждой строки

Ответить
Аватара пользователя
DesmondTruman

CMD/BAT - [решено] For, чтение двух переменных с каждой строки

Сообщение DesmondTruman »

Здравствуйте, помогите пожалуйста разобраться с командой For.

К примеру есть names.txt:





Код:

Код: Выделить всё

1980 Петров Иван Петрович
1980 Иванов Петр Иванович
1980 Пупкин Вася Анонимусович

Нужно каждую строку перенаправить в файл "%имя_человека_из_строки%.txt".

Тоесть к примеру Иван.txt с содержимым "1980 Петров Иван Петрович", Петр.txt c "1980 Иванов Петр Иванович" и т.д.

Так и не поняв, как вывести с одной командой for сразу две переменные: полная строка и имя(3-е слово в строке) пошел по другому пути:







Код:

Код: Выделить всё

for /f "tokens=*" %%i in (names.txt) do (for /f "tokens=3  delims= " %%j in (names.txt) do (echo %%i >%%j.txt))

Но и это не помогло.
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - [решено] For, чтение двух переменных с каждой строки

Сообщение Petya V4sechkin »

DesmondTruman, как-то так?



Код:

Код: Выделить всё

@Echo Off
For /F "Tokens=1-4" %%A In (names.txt) Do Echo %%A %%B %%C %%D>>%%C.txt
Аватара пользователя
DesmondTruman

Re: CMD/BAT - [решено] For, чтение двух переменных с каждой строки

Сообщение DesmondTruman »

Petya V4sechkin, Спасибо, это подходит, но только если все строки одинаковой длины (как в данном примере, что кстати мой промах, показал однобокий, простой пример, извиняюсь)



Обновлённый пример с разной длинной строк:



Код:

Код: Выделить всё

1980 Петров Иван Петрович работал в местной школе трудовиком, спился.
1980 Иванов Петр Иванович утверждал о близком контакте 7-го рода с пришельцами, ушёл в секту.
1980 Пупкин Вася Анонимусович после выигрыша в лотерее 1 млн. дол.  обосновал свою компанию со своим блэкджеком и ...
Аватара пользователя
Iska

Re: CMD/BAT - [решено] For, чтение двух переменных с каждой строки

Сообщение Iska »

Цитата DesmondTruman:



но только если все строки одинаковой длины
CMD/BAT - [решено] For, чтение двух переменных с каждой строки




Вопрос не в длине, а в разделителе, коим у Вас выступает пробел.





Код:

Код: Выделить всё

For /F "Tokens=1-3*" %%A In (names.txt) Do Echo %%A %%B %%C %%D>>%%C.txt
Аватара пользователя
DesmondTruman

Re: CMD/BAT - [решено] For, чтение двух переменных с каждой строки

Сообщение DesmondTruman »

Цитата Iska:



Вопрос не в длине, а в разделителе, коим у Вас выступает пробел.
CMD/BAT - [решено] For, чтение двух переменных с каждой строки




Это и имелось в виду.

Спасибо, то что надо!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»