rds的批处理命令

时间:2017-11-15 19:50:52

标签: batch-file set expression findstr

我的广播电台有一个项目,我将文本复制到播出的.wsx文件中,然后使用像

这样的wget命令将其解析到我的专用网络中的音频处理器以进行RDS显示
if (dayOfTheWeek==["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]){
    document.write("uh..oh...it is a weekday");
} else {
    document.write("Great...It is the weekend");

效果很好,但如果是音乐或促销活动,则无法过滤。

我的挑战是能够过滤并仅解析音乐名称。

对于这个过程,我将不希望显示的文件标记为商业广告,或者将促销标记为“@ - ”而不带引号。

因此文本将显示为@ -Promo1

我的代码:

set /p TEXTO= 0<R:\40.wsx
wget -q "http://x.x.x.x:7380/parameter/fm/rds/rds_rt=%TEXTO%" -O NUL

我似乎找不到正确的方法来过滤它。

请给Heelpp ..

2 个答案:

答案 0 :(得分:1)

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项目(有空格和无空格记录),以了解处理循环内更改值的问题和解决方案。

答案 1 :(得分:0)

首先感谢您的帮助..我没有编码方面的经验。

让我解释一下......

正如我之前所说的一个广播电台,它将使用RDS协议向Car o家庭立体声系统提供文字,允许我发送歌曲名称,标题等文字。

我的情况下,让我发送文本的音频处理器将收到信息作为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:\40PPALES.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?

测试它

正如我在编码之前所说的那样,我只是用Google搜索了所有内容并开始解决这些难题。

请你,如果你认为我应该不同地做这些过程,请告诉我..

抱歉我的英语不好......

问候