|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] BAT считывающий по очереди строки |
|
|
CMD/BAT - [решено] BAT считывающий по очереди строки
|
Новый участник Сообщения: 10 |
Нужен BAT который будет читать по очереди строки из файла 1.txt и записывать их в переменную %stroka%
Т.е. нужно примерно такое @echo off :restart Читаем из файла 1.txt первую строку и пишем её в переменную %stroka% echo %stroka% pause goto restart Собрал вот в такой код @echo off setlocal if not exist count.txt 1>count.txt echo 0 0<count.txt set /p "count=" set /a count+=1 1>count.txt echo %count% type count.txt @echo off for /f "usebackq delims=" %%i in (`find /n /v "" 1.txt ^| find "[%count%]"`) do (echo "%%i") pause А нужно Ума не приложу, как это исправить, надеюсь на вашу помощь |
|
Отправлено: 11:20, 23-08-2017 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Меня терзают смутные сомнения, что в текстовом файле строки именно так и пронумерованы. Сиречь:
если это так, то претензии к самому файлу, если же в файле именно строки без подобной нумерации то можно например вот так: хотя зачем там пауза я не совсем понимаю, но если нужно... |
Отправлено: 11:55, 23-08-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Fometra:
@echo off setlocal enableextensions enabledelayedexpansion for /f "usebackq delims=" %%i in ("1.txt") do ( set stroka=%%i echo !stroka! ) endlocal exit /b 0 Цитата Fometra:
Цитата Elven:
Update: не доглядел зараз, что коллега Elven уже сделал ровно то же ![]() |
|||
Отправлено: 12:08, 23-08-2017 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:07, 23-08-2017 | #4 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Вообще мне это нужно, чтобы по очереди подключаться к множеству RDP, сам код подключения я нашел
Но под каждый сервер такую команду писать не выход, вот нужно, чтобы вместо IP, USER и PASS брались данные для входа из TXT-файлов (IP,LOGIN,PASS думаю разнести в 3 разных ТХТ, т.к. распарсивать строку вида 109.123.99.18:3389@SERVER\Administrator;Password для меня сложновато |
|
Отправлено: 13:17, 23-08-2017 | #5 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Цитата Elven:
|
|
Отправлено: 13:42, 23-08-2017 | #6 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
Fometra, парсить строку приведенного вида действительно не очень удобно, хотя и не невозможно, но хранить пароль в открытом виде не очень красиво и совсем не есть секурно. Для такой задачи как подключение к многочисленным рабочим столам я бы рекомендовал использовать RDCMan или аналоги. Если же все же использовать вариант с файлом где все хранится в открытом виде, проще будет разместить их в файле с каким-то одним разделителем, а не с разными. Например если разделить символом "_" то код может быть приблизительно таким. Однако еще раз повторюсь - это нифига не секурно. |
|
Последний раз редактировалось Elven, 23-08-2017 в 14:36. Отправлено: 14:27, 23-08-2017 | #7 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Цитата Elven:
Получился вот такой код: @echo off for /F "delims=" %%i in (1.txt) do ( for /F "tokens=1-3 delims=_" %%A in ("%%i") do ( set IP=%%A set LOGIN=%%B set PASS=%%C cmdkey /generic:TERMSRV/!IP! /user:!LOGIN! /pass:!PASS! mstsc.exe /v !IP! )) Что не так? ![]() |
|
Отправлено: 15:14, 23-08-2017 | #8 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 15:31, 23-08-2017 | #9 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Всё заработало, только добавил еще pause, чтобы при закрытии окна сервера автоматом не подключался другой, а подключался после нажатии любой кнопки
@echo off SETLOCAL ENABLEDELAYEDEXPANSION for /F "delims=" %%i in (1.txt) do ( for /F "tokens=1-3 delims=_" %%A in ("%%i") do ( set IP=%%A set LOGIN=%%B set PASS=%%C cmdkey /generic:TERMSRV/!IP! /user:!LOGIN! /pass:!PASS! mstsc.exe /v !IP! pause )) 1. Подключился к серверу 2. Сделал всё, что мне нужно на нём 3. Закрыл окно MSTSC.exe 4. IP LOGIN PASS записались в >> results.txt 5. И мой комментирий >> results.txt Пробовал вот так, но сам комментарий не записывается @echo off SETLOCAL ENABLEDELAYEDEXPANSION for /F "delims=" %%i in (1.txt) do ( for /F "tokens=1-3 delims=_" %%A in ("%%i") do ( set IP=%%A set LOGIN=%%B set PASS=%%C cmdkey /generic:TERMSRV/!IP! /user:!LOGIN! /pass:!PASS! mstsc.exe /v !IP! @set /p text="COMMENT: " echo !IP! !LOGIN! !PASS! %text%>> results.txt pause )) |
Последний раз редактировалось Fometra, 23-08-2017 в 16:32. Отправлено: 16:21, 23-08-2017 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - запуск файлов bat по очереди | infoman1@vk | Скриптовые языки администрирования Windows | 8 | 06-12-2020 14:06 | |
CMD/BAT - Поиск строки по слову и добавление новой строки после найденой. | Mikhael2011 | Скриптовые языки администрирования Windows | 17 | 16-03-2017 03:37 | |
CMD/BAT - Поиск и замена строки в txt файлах по содержанию этой строки. | sayyad | Скриптовые языки администрирования Windows | 1 | 06-12-2015 13:20 | |
CMD/BAT - CMD/BAT разбор строки с символом перехода строки в конце. | Alex1254 | Скриптовые языки администрирования Windows | 0 | 19-09-2013 19:24 | |
WINS/Browse - Вылетают по очереди! | zalg | Сетевые технологии | 3 | 20-02-2008 17:40 |
|