我的广播电台有一个项目,我将文本复制到播出的.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 ..
答案 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搜索了所有内容并开始解决这些难题。
请你,如果你认为我应该不同地做这些过程,请告诉我..
抱歉我的英语不好......
问候