Обеспечение запуска / приоритета (в пакетном файле) и передача аргументов из одного пакетного файла в другой - PullRequest
2 голосов
/ 12 марта 2019

У меня есть пакетный (фактически два, один простой, один сложный) файл для отправки ИК-команд бластеру для HTPC.Я не писал командные файлы сам;слишком сложныйОба пакетных файла channel_changing имеют входные параметры, один просто {канал} (= 3 числа) и более сложные {канал} и {IRdefinition} (файл определения IR).Я не могу вызвать запуск / приоритет непосредственно из вызывающего приложения (NextPVR), поэтому мне нужно использовать две партии.

Все, что мне нужно, - это запускать каналы channel_changing с высоким приоритетом.Я попытался вызвать пакет channel_changing из простого starter_batch следующим образом:

GXPC4312H_StarterUUTX.bat

REM
SET command=GXPC4312H_UUTX.bat
REM SET command=GXPC4312H_Changer.bat for the complex one
start "" /REALTIME /B %command%
REM

Пакет простого сменщика каналов GXPC4312H_UUTX.bat

@echo off
cd C:\users\public\NPVR\ChanChg\
set "channel=%1"
set "num=-1"
:loop
set /a num=num+1
call set "name2=%%channel:~%num%,1%%"
if defined name2 (
uutx.exe -r3 -s10 -fGXPC4312H.ir %name2%
echo %name2%
goto :loop
)

Пакетный пакетный чейнджер каналов GXPC4312H_Changer.bat

set sleep=0
set loops=5
:WAIT
IF EXIST C:\Users\Public\NPVR\ChanChg\usblock.dat (GOTO PING) ELSE (GOTO CC)
:PING 
timeout 1
set /A sleep=%sleep%+1
IF %sleep% EQU %loops% GOTO ERROR
GOTO WAIT
:CC
ECHO wait_lock > C:\Users\Public\NPVR\ChanChg\usblock.dat
set input=%1
if not "%input:~0,1%" == "" C:\Users\Public\NPVR\ChanChg\uutx.exe -r3 -s200 -f%~dp0%2 %input:~0,1%
if not "%input:~1,1%" == "" C:\Users\Public\NPVR\ChanChg\uutx.exe -r3 -s200 -f%~dp0%2 %input:~1,1% 
if not "%input:~2,1%" == "" C:\Users\Public\NPVR\ChanChg\uutx.exe -r3 -s200 -f%~dp0%2 %input:~2,1% 
if not "%input:~3,1%" == "" C:\Users\Public\NPVR\ChanChg\uutx.exe -r3 -s200 -f%~dp0%2 %input:~3,1%
del C:\Users\Public\NPVR\ChanChg\usblock.dat
exit
:ERROR
ECHO %DATE% %TIME% >> C:\Users\Public\NPVR\ChanChg\changer_error.log
GOTO :CC

Я запустил первый из командной строки с повышенными правами с одним {каналом}аргумент, например, 115

Я получил командный файл, который никогда не заканчивался и выдавал много ошибок.Казалось, что НЕ передается параметр номера канала от стартового пакета к изменяющемуся пакету, но я читал, что они были переданы?

Error: unable to find codeName '~0,1' in codeFile 'GXPC4312H.ir'
~0,1
Error: unable to find codeName '~1,1' in codeFile 'GXPC4312H.ir'
~1,1
Error: unable to find codeName '~2,1' in codeFile 'GXPC4312H.ir'
~2,1
etc etc

Когда я запускал второй стартер с ДВУМЯ аргументами {канал} {IRDef.ir} например, 115 GXPC4312H.ir Я получил простую ошибку, что

"The syntax of the command is incorrect"

Я не совсем уверен, что здесь происходит, так как я унаследовал эти командные файлы (и изменил толькоимена путей и файлы IRdef).Хотя я могу до некоторой степени следовать логике в них, я изо всех сил пытаюсь устранить ошибки.

resources:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...