rds的批处理命令
Batch commands for rds
我有一个关于我的广播电台的项目,我在其中复制广播内容的 .wsx 文件中的文本,并使用类似
set /p TEXTO= 0<R:.wsx
wget -q "http://x.x.x.x:7380/parameter/fm/rds/rds_rt=%TEXTO%" -O NUL
效果很好,但如果是音乐或促销,它不会过滤。
我的挑战是能够过滤并仅解析音乐名称。
对于这个过程,我将我不想显示的文件标记为商业或促销,以不带引号的“@-”开头。
因此文本将显示为 @-Promo1
我的代码:
for /F "delims=" %%a in ('FINDSTR "\<@-.*" C:\RDS\PRUEBAS\txt1.wsx') do set
"VAR=%%a"
echo %VAR%
if "%VAR%" == "true" (
set /p VAR=0<C:\FILEPATH\LOS40.wsx & wget -q
"http://x.x.x.x:7380/parameter/fm/rds/rds_rt=%VAR%" -O NUL
) else (
set /p TEXTO=0<C:\FILEPATH\ENVIVO.wsx & wget -q
"http://x.x.x.x:7380/parameter/fm/rds/rds_rt=%TEXTO%" -O NUL
)
我似乎找不到正确的过滤方法。
请帮助...
for /F "delims=" %%a in ('FINDSTR "\<@-.*" C:\RDS\PRUEBAS\txt1.wsx') do set
应该是
for /F "delims=" %%a in ('FINDSTR /b "@-" C:\RDS\PRUEBAS\txt1.wsx') do set
在 .wsx
文件中找到那些 做 /b
以“@-”开头的行
如果你想找到那些 不是 以“@-”开头的行,那么将 /v
添加到 /b
.
结果将是文件中不以“@-”开头的一行,该行将放置在 %%a
。
如果您直接将 %%a
分配给一个变量,该变量将在 for
之后包含分配给它的最后一个值。
如果要对每个名称执行 wget
,请使用
for /F "delims=" %%a in ('FINDSTR /B "@-" C:\RDS\PRUEBAS\txt1.wsx') do (
echo %%a
)
在括号之间,您可以使用 %%a
作为文件名来执行命令。
相当你打算做什么是晦涩难懂的。我不知道来自无法解释的文件的 set/p
是什么意思, 但是 请注意,括号之间的任何代码都受 delayedexpansion
陷阱的约束 -请说明您打算对 [不] 匹配前导 @-
.
的文件名进行何种处理
您应该阅读 delayed expansion
上的 SO 项目(记录有无 space)以了解处理在循环内更改的值的问题和解决方案。
首先感谢您的帮助。我没有编码经验。
让我再解释一下..
正如我之前所说,它是一个广播电台,它将使用 RDS 协议向 Car 或家庭立体声系统提供文本,该协议允许我发送歌曲名称、标题等文本。
在我的情况下,让我发送文本的音频处理器将收到信息作为 URL,我在末尾添加了我要发送的文本。
例如:
http://x.x.x.x:7380/parameter/fm/rds/rds_rt=%TEXTO%
%TEXTO% 将是我发送的文本。
C:\RDS\PRUEBAS\txt1.wsx 包含当前正在播放的文本以及正在读取的文本,以查看脚本的 @- 是否可以避免发送这些标题。
我有一台 PC 运行正在运行一个目录监控程序,它将监控文件 C:\RDS\PRUEBAS\txt1.wsx 上的事件,一旦被修改,它就会执行批处理文件 CHECKRDS.cmd。
测试后我决定 运行 CHECKRDS.cmd 中的代码,例如:
for /F "delims=" %%a in ('FINDSTR /v "@-" R:PPALES.wsx') do (
START "" RDS.bat
)
EXIT
RDS.bat 包含代码并且工作正常:
set /p TEXTO= 0<C:\RDS\PRUEBAS\txt1.wsx
wget -q "http://x.x.x.x:7380/parameter/fm/rds/rds_rt=%TEXTO%" -O NUL
EXIT
至于 set /p 我是从 What does /p mean in set /p?
测试的
正如我之前所说,我是编码方面的新手,我只是用谷歌搜索了所有内容并开始破解拼图的各个部分。
请,如果您认为我应该以不同的方式执行这些过程,请告诉我..
抱歉我的英语不好..
问候
我有一个关于我的广播电台的项目,我在其中复制广播内容的 .wsx 文件中的文本,并使用类似
set /p TEXTO= 0<R:.wsx
wget -q "http://x.x.x.x:7380/parameter/fm/rds/rds_rt=%TEXTO%" -O NUL
效果很好,但如果是音乐或促销,它不会过滤。
我的挑战是能够过滤并仅解析音乐名称。
对于这个过程,我将我不想显示的文件标记为商业或促销,以不带引号的“@-”开头。
因此文本将显示为 @-Promo1
我的代码:
for /F "delims=" %%a in ('FINDSTR "\<@-.*" C:\RDS\PRUEBAS\txt1.wsx') do set
"VAR=%%a"
echo %VAR%
if "%VAR%" == "true" (
set /p VAR=0<C:\FILEPATH\LOS40.wsx & wget -q
"http://x.x.x.x:7380/parameter/fm/rds/rds_rt=%VAR%" -O NUL
) else (
set /p TEXTO=0<C:\FILEPATH\ENVIVO.wsx & wget -q
"http://x.x.x.x:7380/parameter/fm/rds/rds_rt=%TEXTO%" -O NUL
)
我似乎找不到正确的过滤方法。
请帮助...
for /F "delims=" %%a in ('FINDSTR "\<@-.*" C:\RDS\PRUEBAS\txt1.wsx') do set
应该是
for /F "delims=" %%a in ('FINDSTR /b "@-" C:\RDS\PRUEBAS\txt1.wsx') do set
在 .wsx
文件中找到那些 做 /b
以“@-”开头的行
如果你想找到那些 不是 以“@-”开头的行,那么将 /v
添加到 /b
.
结果将是文件中不以“@-”开头的一行,该行将放置在 %%a
。
如果您直接将 %%a
分配给一个变量,该变量将在 for
之后包含分配给它的最后一个值。
如果要对每个名称执行 wget
,请使用
for /F "delims=" %%a in ('FINDSTR /B "@-" C:\RDS\PRUEBAS\txt1.wsx') do (
echo %%a
)
在括号之间,您可以使用 %%a
作为文件名来执行命令。
相当你打算做什么是晦涩难懂的。我不知道来自无法解释的文件的 set/p
是什么意思, 但是 请注意,括号之间的任何代码都受 delayedexpansion
陷阱的约束 -请说明您打算对 [不] 匹配前导 @-
.
您应该阅读 delayed expansion
上的 SO 项目(记录有无 space)以了解处理在循环内更改的值的问题和解决方案。
首先感谢您的帮助。我没有编码经验。
让我再解释一下..
正如我之前所说,它是一个广播电台,它将使用 RDS 协议向 Car 或家庭立体声系统提供文本,该协议允许我发送歌曲名称、标题等文本。
在我的情况下,让我发送文本的音频处理器将收到信息作为 URL,我在末尾添加了我要发送的文本。
例如:
http://x.x.x.x:7380/parameter/fm/rds/rds_rt=%TEXTO%
%TEXTO% 将是我发送的文本。
C:\RDS\PRUEBAS\txt1.wsx 包含当前正在播放的文本以及正在读取的文本,以查看脚本的 @- 是否可以避免发送这些标题。
我有一台 PC 运行正在运行一个目录监控程序,它将监控文件 C:\RDS\PRUEBAS\txt1.wsx 上的事件,一旦被修改,它就会执行批处理文件 CHECKRDS.cmd。
测试后我决定 运行 CHECKRDS.cmd 中的代码,例如:
for /F "delims=" %%a in ('FINDSTR /v "@-" R:PPALES.wsx') do (
START "" RDS.bat
)
EXIT
RDS.bat 包含代码并且工作正常:
set /p TEXTO= 0<C:\RDS\PRUEBAS\txt1.wsx
wget -q "http://x.x.x.x:7380/parameter/fm/rds/rds_rt=%TEXTO%" -O NUL
EXIT
至于 set /p 我是从 What does /p mean in set /p?
测试的正如我之前所说,我是编码方面的新手,我只是用谷歌搜索了所有内容并开始破解拼图的各个部分。
请,如果您认为我应该以不同的方式执行这些过程,请告诉我..
抱歉我的英语不好..
问候