|
Компьютерный форум 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 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:36, 23-08-2017 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Fometra, ИМХО, Брать в качестве разделителя "_" не слишком хорошая идея. Могу ошибаться, но в логине это допустимый символ. А в пароле тем более, плюс "!" тоже, что может привести к неприятностям при работе батника.
Предлагаю взять разделителем пробел. Для строки вида: 192.168.125.15 User Tra La La @Echo Off Set "FileIn=Z:\Box_In\1.txt" Set "FileLog=Z:\Box_Out\Results.txt" FOR /F "usebackq tokens=1,2* delims= " %%A IN ("%FileIn%") DO Call :Connect "%%A" "%%B" "%%C" GoTo :Eof :Connect cmdkey /generic:TERMSRV/%~1 /user:%~2 /pass:%~3 mstsc.exe /v %~1 set /p text="COMMENT: " Echo %Date% %Time% %~1 %~2 %~3 %text%>>"%FileLog%" Pause GoTo :Eof |
------- Отправлено: 17:43, 23-08-2017 | #12 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Да, об этом не подумал, в паролях есть !
|
Отправлено: 17:49, 23-08-2017 | #13 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата megaloman:
![]() Как раз с неделю назад в другом месте кто-то успешно опробовал, хотя и не на ftp, пароль из восьми пробелов и в шутку поинтересовался, легко ли его сбрутфорсить, в т.ч. словарной атакой. |
|
------- Отправлено: 17:54, 23-08-2017 | #14 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата mwz:
![]() Однако, надо следить, чтобы в конце пароля в строке не было лишних пробелов. Увы, пробелы в начале пароля будут проигнорированы. Для Вашего примера пароля из пробелов скрипт не сработает. В этом случае надо иное решение. Чтобы скрипт отработал, первым в пароле должен быть символ. |
|
------- Последний раз редактировалось megaloman, 23-08-2017 в 18:21. Отправлено: 17:56, 23-08-2017 | #15 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать если есть возможность самому редактировать txt, то можно и так сделать, удобно, но на любителя
|
Отправлено: 18:20, 23-08-2017 | #16 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать В моих паролях нету пробелов, поэтому не беда.
Еще бы добавить, чтобы после чтения IP,LOGIN,PASS из файла 1.txt прочитанная строка удалялась |
Отправлено: 18:26, 23-08-2017 | #17 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Fometra:
удалять проще весь файл, но пока он нужен в нем можно делать изменения да и вообще хранить в качестве шаблона |
|
Отправлено: 18:34, 23-08-2017 | #18 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Fometra,
Можно "съесть" в память весь файл (если он не слишком большой), удалить его, а затем из памяти брать прочитанные данные.
@Echo Off cls Set "FileIn=Z:\Box_In\1.txt" Set "FileLog=Z:\Box_Out\Results.txt" Set /A N=0 FOR /F "usebackq tokens=1,2* delims= " %%A IN ("%FileIn%") DO Call :ToMemory "%%A" "%%B" "%%C" A B C Echo Del "%FileIn%" FOR /L %%i IN (1,1,%N%) DO Call :Connect %%A%%i%% %%B%%i%% %%C%%i%% GoTo :Eof :ToMemory Set /A N+=1 Set "%4%N%=%1" Set "%5%N%=%2" Set "%6%N%=%3" GoTo :Eof :Connect cmdkey /generic:TERMSRV/%~1 /user:%~2 /pass:%~3 mstsc.exe /v %~1 set /p text="COMMENT: " Echo %Date% %Time% %~1 %~2 %~3 %text%>>"%FileLog%" Pause GoTo :Eof |
------- Последний раз редактировалось megaloman, 24-08-2017 в 11:38. Отправлено: 19:32, 23-08-2017 | #19 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|