Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Запуск файла при обнаружении в файле нужного символа

Ответить
Настройки темы
CMD/BAT - [решено] Запуск файла при обнаружении в файле нужного символа

Пользователь


Сообщения: 63
Благодарности: 0

Профиль | Отправить PM | Цитировать


Уважаемые, прошу помощи. Перепробовал кучу вариантов, но знаний добиться результатов не хватает. Нужно выполнить задание по условию. Если в Первом тхт есть цифра 1, то запуск Первого приложения. Если во Втором тхт цифра 2, то запуск Второго приложения. Если в Третьем тхт есть цифра 3, то запуск Третьго приложения. Если в нескольких из этих тхт есть цифры, то и запускать всё что им соответствует. Пути ко всем файлам могут сильно отличаться. Понимаю что через переменные делать надо,но ничего не выходит. Заранее благодарен.

Отправлено: 06:55, 28-02-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата NLOLegion:
Если в Первом тхт есть цифра 1, то запуск Первого приложения. »
Код: Выделить весь код
type "1.txt" | findstr.exe "1" && "1.exe"
Цитата NLOLegion:
Если во Втором тхт »
Здесь как понимать — отдельное условие «Если» или как продолжение первого условия, т.е. — «ИначеЕсли»?

Цитата NLOLegion:
Если в нескольких из этих тхт есть цифры, то и запускать всё что им соответствует. »
Поясните.

Цитата NLOLegion:
Пути ко всем файлам могут сильно отличаться. »
Да бога ради. Указывайте полные абсолютные или частичные относительные пути. В чём проблема-то.

Отправлено: 07:23, 28-02-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 63
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Iska »
имеется любое количество фалов:1.txt, 2.txt, 3.txt и т.д. В любом из них может оказаться цифра соответствующая названию: 1,2,3 и т.д. Но может оказаться и в нескольких, и во всех, и ни в каком. Данная цифра будет меткой ( sed её найдёт в левом тексте и отправит в нужный файл. в случае успешного нахождения такой цифры-метки будет запускаться необходимое приложение ( программа, батник) или несколько. Данная задача будет применима в голосовом управлении на котором я немного повёрнут.

Отправлено: 18:37, 29-02-2016 | #3


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата NLOLegion:
sed её найдёт в левом тексте и отправит в нужный файл »
Что за левый текст?

Цитата NLOLegion:
Но может оказаться и в нескольких, и во всех, и ни в каком. »
Наверное стоит пояснить структуру самих файлов, как эти цифры расположены, отдельной цифрой (числом) в строке или являются составной частью другого числа или слова? Как быть если, например, в файле 41.txt есть строка:
Код: Выделить весь код
aaa bbb 4441 ccc
При условии, что искомые названия файлов (1,2,3) находятся либо на отдельной строке, либо являются отдельным "словом"
Код: Выделить весь код
@echo off
setlocal

for /f "tokens=*" %%i in ('dir /b /s d:\test\*.txt') do (

	1>nul findstr "\<%%~ni\>" "%%i" && call:exec %%~ni

)

goto:eof

:exec

if %1 equ 1 start notepad
if %1 equ 2 start calc
if %1 equ 3 start mspaint
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:16, 29-02-2016 | #4


Пользователь


Сообщения: 63
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
Foreigner
"Левый текст" это мой корявый сленг - прошу прощенья. Текст может быть любым, но у меня это лог программы. SED найдёт нужный символ и заменит его на цифру 1. Отправит в 1. txt. Цифру 2 он отправит в другой файл - 2.txt. И т.п. Цифра в файле будет единственным числом, следовательно воспринимается как "одна строка одно слово" (возможно в файле присутствие символа переноса каретки, но не думаю что это помешает. Вообще пытался реализовать таким путём, но не получается совместить более одного варианта:

setlocal enabledelayedexpansion
set /p answer=<C:\1.txt
if %answer%==1 goto :finish else goto :exit
:finish
start notepad
endlocal

плюс надо:

setlocal enabledelayedexpansion
set /p answer=<C:\2.txt
if %answer%==2 goto :finish else goto :exit
:finish
start mspaint
endloca

Цитата:
Foreigner При условии, что искомые названия файлов (1,2,3) находятся либо на отдельной строке...
Не думал что так просто! Спасибо огромное! Работает на ура!!!

Последний раз редактировалось NLOLegion, 02-03-2016 в 08:24.


Отправлено: 08:18, 02-03-2016 | #5


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день.
что то с приведенными примерами не получается запуск файла при обнаружении в файле нужного символа.
есть лог и при появлении в логе строки с текстом pppd local IP address 100.*.*.* запуск start.bat

Отправлено: 12:13, 26-04-2016 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


orbita, покажите конкретный лог (упаковав его в архив и приложив к сообщению) и конкретный код, с которыми «не получается».

Отправлено: 12:20, 26-04-2016 | #7


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


type "1.txt" | findstr.exe "1" && "1.exe"
в этом примере например всегда запускается 1.exe хоть есть 1 хоть нет в файле 1.txt

Код: Выделить весь код
[SYSLOG]2016/4/26 03:06:39 ndm Core::Session: client disconnected. 
[SYSLOG]2016/4/26 03:06:39 pppd PAP authentication succeeded 
[SYSLOG]2016/4/26 03:06:39 pppd peer from calling number DВ:58:E1:F8:E4:F8 authorized 
[SYSLOG]2016/4/26 03:06:39 pppd local  IP address 100.138.163.114 
[SYSLOG]2016/4/26 03:06:39 pppd remote IP address 177.38.122.7 
[SYSLOG]2016/4/26 03:06:39 pppd primary   DNS address 65.175.66.132 
[SYSLOG]2016/4/26 03:06:39 pppd secondary DNS address 65.175.66.125 
[SYSLOG]2016/4/26 03:06:39 ndm Network::Interface::Base: "PPPoE1": interface is up. 
[SYSLOG]2016/4/26 03:06:39 ndm Network::Interface::PPP: interface "PPPoE1" is global, priority 1100. 
[SYSLOG]2016/4/26 03:06:39 ndm Network::Interface::PPP: adding default route via PPPoE1.
при появлении в логе 4й строки запуск файла, если ip начинается не с 100 то никаких действий.

Отправлено: 12:38, 26-04-2016 | #8


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


orbita, В вашем примере единиц пруд пруди. Если их все заменить, то и findstr ничего не найдет.

Отправлено: 12:53, 26-04-2016 | #9


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата orbita:
в этом примере например всегда запускается 1.exe хоть есть 1 хоть нет в файле 1.txt »
«В этом примере» единицы есть в каждой строке. Ровно то, что и заказывали указанным кодом.

Цитата orbita:
при появлении в логе 4й строки запуск файла, если ip начинается не с 100 то никаких действий. »
Какое именно «ip»? Если речь о каких-то конкретных строках из лога, эти условия нужно учитывать при поиске, либо предварительно выделить их среди прочих строк, а не тупо искать «100» в каждой строке лога.

Отправлено: 13:16, 26-04-2016 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Запуск файла при обнаружении в файле нужного символа

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Удаление последнего символа в каждой строке txt - файла Мария_Айдарова@vk Скриптовые языки администрирования Windows 14 01-08-2019 18:23
CMD/BAT - Вывод имени файла без первого символа maxvtb Скриптовые языки администрирования Windows 8 28-06-2013 08:12
CMD/BAT - [решено] Поиск и удаление нужного файла. LiLusha Скриптовые языки администрирования Windows 3 03-03-2011 13:08
[решено] Как найти и прописать в реестре запуск нужного файла? Pozia AutoIt 12 12-03-2009 23:38
VBS/WSH/JS - [решено] Stop цикл при обнаружении нужного значения из файла Afon Скриптовые языки администрирования Windows 4 26-01-2009 15:16




 
Переход