У меня есть пакетный (фактически два, один простой, один сложный) файл для отправки ИК-команд бластеру для 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:
- start «Имя» / Priority »PATH .. исполняемый файл "--arguments https://www.tenforums.com/tutorials/89548-set-cpu-process-priority-applications-windows-10-a.html#option4
- Я читал здесь, чтобы использовать вызов, но я считаю, что мне нужно использовать запуск, так как я хочу, чтобы пакетный файл запускался с высоким приоритетом? Пакетный скрипт останавливается после первого вызова другого пакетного скрипта
- Я знаю, вы также можете использовать wmic, но я читал здесь, чтобы не использовать wmic, так как он ненадежен (и я счастлив, что используюстартовый "/ приоритетный переключатель всегда).https://superuser.com/questions/620724/changing-windows-process-priority-via-command-line?noredirect=1&lq=1
- Переменные передаются из одного пакетного файла в другой. Как передать переменные из одного пакетного файла в другой пакетный файл?