Как используя php или vbs вытащить данные из текстовых файлов?
Добрый день, подскажите, как спарсить определенные строчки из .cmd файлов например: скрипт в файле:
cd "%SD_EVENTHOME%bin"
call addentry.bat c:\SD\RG "%SD_EVENTHOME%bin\sd_event.exe" -a wo/sDSddd -s servName -x "WO: ОФЭЗ: (nyanNAME) Контроль справочника орган" -c WO -m insert -l "C:\SD\wo_creation.log" -v "EXTID=REG%DATE% %TIME% %RANDOM%"
из всего этого нужно вытащить только вот это: "WO: ОФЭЗ: (nyanNAME) Контроль справочника орган"
проблема еще и в том, что всего файлов 390 среди них есть и пустые и закомментированые и частично закомментированые и один файлы с кучей скриптов внутри и по одному скрипту
в конечном итоге нужно что-бы получилось выгрузить вот в таком виде на примере этого файла: script.cmd "WO: ОФЭЗ: (nyanNAME) Контроль справочника орган"
(т.е. файл в котором лежит / лежат скрипт/ скрипты и название сама которое в кавычках)
Допустим, все файлы лежат в одной папке.
Тогда с помощью opendir/readdir получаем список файлов.
Далее в цикле, читаем файл в строку и разбираем эту строку с помощью регулярного выражения.
А уж чтобы написать правильную регулярку - надо понимать, как эти файлы могут внутри выглядеть.
спасибо, немного прояснилось, все файлы итак в одной папке, я щас посмотрел в каждом файле по 1 скрипту, но в некоторых файлах закоменчены "rem" а выглядят они так-же как в примере
ну вот например пару файлов:
cd "%SD_EVENTHOME%bin"
call addentry.bat c:\SD\RG "%SD_EVENTHOME%bin\sd_event.exe" -a wo/P0rd -s prvspp2 -x "WO: ОПП (НЯНЯНЯ): Занесение графика -c WO -m insert -l "C:\SD\wo_creation.log" -v "EXTID=REG%DATE% %TIME% %RANDOM%"
=====
cd "%SD_EVENTHOME%bin"
call addentry.bat c:\SD\RG "%SD_EVENTHOME%bin\sd_event.exe" -a wo/P0rd -s prvspp2 -x "WO: ОППЗ (НЯНЯНЯ): Формир. сут. порции счетов и печа" -c WO -m insert -l "C:\SD\wo_creation.log" -v "EXTID=REG%DATE% %TIME% %RANDOM%"
не подскажешь еще ? как сделать так, что-бы вытащенное значение было напротив имени файла?
к примеру, вот скрипт:
на форме начальной вводдится расположение директории где лежать файлы
затем обработчик, в таблицу из двух колонок выводит слева имена файлов (работает) а в правую колонку вытащенное знаечние (то, что вы мне помогли вытащить )
как реализовать не подскажешь? а то я запутался немножко, мне не лень самому поискать, подумать, я пытался, просто не прогал не разу не на чем
Андрей Привалов: да спасибо большое) а вот как условие поставить или проверку, что если закомментировано (в самом начале файла стоит rem) то этот файл обрабатывать не надо?
Вам нужен только php или vbs? Почему бы тем же батником не вытащить?
@echo off
set "dirin=c:\temp"
set "findstr=addentry.bat"
for /f "tokens=1,* delims=:" %%a in ('findstr /c:"%findstr%" "%dirin%\*.cmd" ') do call:workstr %%~b
goto:eof
:workstr
shift
echo.script.cmd %9
exit /b