Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 8

Автор: conty9
Дата сообщения: 10.08.2010 21:37
Может, подскажет кто, как в тексте найти переменные, размещённые в четвёртой строке после фразы "Name = "Preferred display settings" (если таких фраз будет несколько - только из первого блока)
[more=Примерный текст для анализа..]
...
Start Attribute
Name = "Controller type"
ID = 9
Type = String(20)
Storage = Specific
Value = ""
End Attribute
Start Attribute
Name = "Firmware version"
ID = 10
Type = String(8)
Storage = Specific
Value = ""
End Attribute
Start Attribute
Name = "Power state"
ID = 11
Type = String(8)
Storage = Specific
Value = ""
End Attribute
Start Attribute
Name = "Preferred display settings"
ID = 12
Type = String(20)
Storage = Specific
Value = "1280x800 at 60Hz"
End Attribute
... [/more]
Нужно получить значение разрешения и частоты развёртки - Hor / Ver / Fr. Как найти саму фразу, разобрался, а дальше - загвоздка
Код: FOR /F "tokens=1,2 delims= " %%A IN ('"type text.txt | find /i "Preferred display settings""') DO SET PDS=%%A
Echo %PDS%
)
Автор: bomzzz
Дата сообщения: 10.08.2010 21:44
надо переменные добавочные в которые будут помещенны остальные колонки после заданного делителя. описание FOR читай

Добавлено:

Цитата:

for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k

Данная команда производит разбор каждой строки в файле Myfile.txt, игнорируя строки, начинающиеся с точки с запятой, и передает второй и третий элементы из каждой строки в тело цикла команды FOR. Элементы разделяются запятыми и/или пробелами. Тело инструкции FOR использует %i для получения второго элемента, %j для получения третьего элемента и %k для получения оставшихся элементов в строке. Если имена файлов содержат пробелы, их следует заключать в кавычки (например, "ИмяФайла"). Для использования кавычек необходима команда usebackq. В противном случае кавычки рассматриваются как определение символьной строки для разбора.

Переменная %i объявлена явно в инструкции FOR, а %j и %k объявлены неявно с помощью tokens=. С помощью tokens= можно указать до 26 элементов, если это не вызовет попытки объявить переменную с именем, большим буквы "z" или "Z".

Автор: conty9
Дата сообщения: 10.08.2010 22:01
bomzzz, мне не следующие колонки нужны, а данные из четвёртой строки после фразы.
Назойливое чувство, что за ним следят, не покидало Штирлица четвёртый день...
Автор: boy999
Дата сообщения: 10.08.2010 22:04
(bat) с параметрами DT -mount и нужным образом, создайте на него ярлык...

Вот чего присоветовали....
А как реализовать!?
Автор: conty9
Дата сообщения: 10.08.2010 22:29
boy999, создай файл Start_Proga.cmd с содержанием (пути укажи свои)
"C:\Program Files\DAEMON Tools Lite\daemon.exe" -mount 0,"C:\MyCD\Proga.iso"
Сохрани, например, на рабочий стол. Потом создай для него ярлык, и в созданном ярлыке (ПКМ, свойства, закладка "ярлык", "быстрый вызов") укажи желаемую комбинацию клавиш для запуска.
Автор: bomzzz
Дата сообщения: 10.08.2010 23:56
неправильно понял - примерный текст не посматрел.
по моему проще всего при делителе =, если первая колонка равна Value, а вторая колонка не равна "", то сохранить значение второй колонки. или нужно возиться со счетчиками.

если значение второй колонки равно "Preferred display settings" то включить счетчик и когда он станет равен 4 сохранить значение второй колонки
Автор: alexmoreman
Дата сообщения: 11.08.2010 02:38
подскажите пожалуйста, можно ли и как написать батник выполняющий такие действия:
первым действием идёт скачивание с помощью wget html странаца
wget -c -t 0 http://sait.ru/452484 -O 452484.html
далее он должен найти
<form action=d/10174289/452484 method=GET id="start_download_form">
скопировать из этой строки
d/10174289/452484
и вставить в следующей строке вместо ХХХ
wget -c -t 0 http://sait.ru/ХХХ -O Fail.avi
Автор: bomzzz
Дата сообщения: 11.08.2010 03:12
alexmoreman
в двух словах чтоб разобрать текстовый документ (скачать его просто) нужно использовать команду FOR в твоем случае с набором разделителей пробел и знак равно. если вторая колонка из строки, как я понимаю, будет равна action, то надо сохранить значение третьей колонки. так ты выдерешь свое ид. ну подставить его в параметр тоже просто.
Автор: king_stiven
Дата сообщения: 11.08.2010 08:17
alexmoreman

Цитата:
далее он должен найти
<form action=d/10174289/452484 method=GET id="start_download_form">

С помощью утилиты sed в шапке

Цитата:
Полезные утилиты



Добавлено:
alexmoreman

Цитата:
далее он должен найти
<form action=d/10174289/452484 method=GET id="start_download_form">

с помощью утилиты sed
в шапке

Цитата:
Полезные утилиты

Автор: boy999
Дата сообщения: 11.08.2010 10:12
conty9

Цитата:
создай файл  Start_Proga.cmd с содержанием (пути укажи свои)
"C:\Program Files\DAEMON Tools Lite\daemon.exe" -mount 0,"C:\MyCD\Proga.iso"


Сделал там такой текст:
C:\Program Files\DAEMON Tools Lite\daemon.exe" -mount 0,"F:\Randevu_cd2.iso

Было в кавычках, щас без - всё равно ничего не происходит, когда щёлкаю по нему.
Чего не так!?
Автор: us0r
Дата сообщения: 11.08.2010 10:14
boy999
http://forum.ru-board.com/topic.cgi?forum=62&topic=19668&start=3140#12

conty9

Код: for /f "usebackq eol=; tokens=4" %%a in ('find /i "Preferred display settings" file.ext') do set PDS=%%a
echo %PDS%
Автор: boy999
Дата сообщения: 11.08.2010 10:57
us0r

Цитата:
"C:\Program Files\D-Tools\daemon.exe" -mount 0,C:\образ.mds -rmps on


Сделал батнег с текстом:
"C:\Program Files\D-Tools\daemon.exe" -mount 0,F:\Randevu_cd2.iso

НЕА.
Окно на мгновение мелькает и там удалось разобратьтока:: системе не удаётсо....
Автор: us0r
Дата сообщения: 11.08.2010 11:56
boy999
В конце пиши pause > nul и запусти ещё раз...
Месаги- сюда)

Добавлено:
-mount 0, "Путь к образу" (в кавычках)
Автор: boy999
Дата сообщения: 11.08.2010 12:33
us0r

"C:\Program Files\D-Tools\daemon.exe" -mount 0,"F:\Randevu_cd2.iso" pause > nul

НЕА

Добавлено:
Мессаги разглядеть невозможно....
Автор: us0r
Дата сообщения: 11.08.2010 12:47
В самом конце батника напиши pause > nul и не дёргай клавиатуру после запуска... А сначала прочитай что пишет...
Автор: boy999
Дата сообщения: 11.08.2010 13:33

Цитата:
А сначала прочитай что пишет...


за 0.1 сек. - это нереал.

В батнике: "C:\Program Files\D-Tools\daemon.exe" -mount 0,"F:\Randevu_cd2.iso"pause > nul
Автор: us0r
Дата сообщения: 11.08.2010 13:36
А так?

Код: "C:\Program Files\D-Tools\daemon.exe" -mount 0,"F:\Randevu_cd2.iso"
pause > nul
Автор: boy999
Дата сообщения: 11.08.2010 14:22
us0r



А исошник-то с таким именем и лежит на корню F.........

Кто-то нас за дуракофф держит.....
Автор: us0r
Дата сообщения: 11.08.2010 14:33
DT... Она на DT ругаетсо скорее всего(?)

Код: @echo off
cls
cd "%programfiles%\D-Tools\"
daemon -mount 0,"F:\Randevu_cd2.iso
pause > nul
Автор: boy999
Дата сообщения: 11.08.2010 15:12


Точно где спряталось ...западло\дримкиллер и пакостничает
Автор: king_stiven
Дата сообщения: 11.08.2010 15:31
Посоветуйте бою сначала демон найти на его компе.
Автор: us0r
Дата сообщения: 11.08.2010 16:09
king_stiven
Автор: boy999
Дата сообщения: 11.08.2010 16:27
ТОЧНА! Демон -то на Е!
Система вся на диске Е.
Прошу прощения.....

Добавлено:
А папка - DAEMON Tools Lite
Автор: us0r
Дата сообщения: 11.08.2010 17:00
попробуй путь в кавычки или, если что, *тут путь*\DAEMON~1\
Автор: boy999
Дата сообщения: 11.08.2010 17:44
УРЯ!
Сработало!

А ларчик-то просто открывалсо: "E:\Program Files\DAEMON Tools Lite\DTLite.exe" -mount 0,"F:\Randevu_cd2.iso"
pause > nul


Щас буду с ярлыком возитсо.....

Добавлено:


Не хотить, сцуко, монтировать по заданным кнопкам.
Ммм!?
Автор: us0r
Дата сообщения: 11.08.2010 18:04
Ээээ... Винда гуями обделена?
Есть вариант что работает только тогда, когда фокус на рабочем столе (приложение не перехватывает хоткеи?)...
Есть 2 пути (оба через ж...)... Ну это то, что знаю я)))
Автор: boy999
Дата сообщения: 11.08.2010 22:50

Цитата:
инда гуями обделена?

ГУИ - это чо!?
Автор: bomzzz
Дата сообщения: 11.08.2010 23:16
гуй - это окно... с кнопками чтоб мышкай фтыкать
GUI - Grafical User Interface
Автор: ddw123
Дата сообщения: 12.08.2010 12:47
Здравствуйте, такой вопрос имееться домен очень большое количество юзеров к каждому юзеру при логине мапиться его сетевая персональная папка , все это делаеться батником ;
net use u: \\server\%username% /persistent:no, помогите облегчить работу чтоб не создовать папку вручную а при выполнении батника он смотрел что папки с названием пользователя нет и создовал ее а при последующем логине юзера батник просто мапил папку с правами юзера
Автор: us0r
Дата сообщения: 12.08.2010 13:04

Код: if not exist %username% md %username%
net use u: \\server\%username% /persistent:no

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.