Board logo

标题: [文本处理] 批处理变量嵌套截取如何处理? [打印本页]

作者: hsj    时间: 2010-12-5 13:06     标题: 批处理变量嵌套截取如何处理?

代码如下

::天气预报--------------------------------
::得到天气城市名
for /f "tokens=1 delims=," %%i in ('cscript //NoLogo /e:vbscript "%temp%\webget.vbs" "http://api.liqwei.com/weather/"') do (set "tqcs=%%i")
::得到天气预报并合并成一行赋值给变量
for /f "delims=" %%i in ('cscript //NoLogo /e:vbscript "%temp%\webget.vbs" "http://api.liqwei.com/weather/"') do call set "tq=%%tq%%%%i"
::除去变量中的空格
set tq=%tq: =%
::检查天气变量是否为空,防止获取失败时显示变量名
if "%tq%"=="" set tq=
::变量格式处理
set tq=%tq:%tqcs%=\n%  
::上面这一行,用%tqcs%调用城市名,把城市名全部换成换行符号。但是嵌套的变量名不起作用。
set tq=%tq:风,=风%
set tq=%tq:,10-=%
set tq=%tq:,11-=%
set tq=%tq:,12-=%
set tq=%tq:,1-=%
set tq=%tq:,2-=%
set tq=%tq:,3-=%
set tq=%tq:,4-=%
set tq=%tq:,5-=%
set tq=%tq:,6-=%
set tq=%tq:,7-=%
set tq=%tq:,8-=%
set tq=%tq:,9-=%
set tq=%tq:10,=10日%
set tq=%tq:11,=11日%
set tq=%tq:12,=12日%
set tq=%tq:13,=13日%
set tq=%tq:14,=14日%
set tq=%tq:15,=15日%
set tq=%tq:16,=16日%
set tq=%tq:17,=17日%
set tq=%tq:18,=18日%
set tq=%tq:19,=19日%
set tq=%tq:20,=20日%
set tq=%tq:21,=21日%
set tq=%tq:22,=22日%
set tq=%tq:23,=23日%
set tq=%tq:24,=24日%
set tq=%tq:25,=25日%
set tq=%tq:26,=26日%
set tq=%tq:27,=27日%
set tq=%tq:28,=28日%
set tq=%tq:29,=29日%
set tq=%tq:30,=30日%
set tq=%tq:31,=31日%
set tq=%tq:1,=1日%
set tq=%tq:2,=2日%
set tq=%tq:3,=3日%
set tq=%tq:4,=4日%
set tq=%tq:5,=5日%
set tq=%tq:6,=6日%
set tq=%tq:7,=7日%
set tq=%tq:8,=8日%
set tq=%tq:9,=9日%
set tq=%tq:℃~=~%
set tq=%tq:,=%
set tq=%tqcs%天气%tq%

请大家帮忙处理一下。谢谢!!
作者: hsj    时间: 2010-12-5 13:12

最终显示效果(举例):
昭通天气
5日多云16~-2℃微风小于3级
6日小雨11~-2℃微风小于3级
7日雨夹雪11~-2℃微风小于3级
作者: hanyeguxing    时间: 2010-12-5 13:26

变量的嵌套时,内外两层的变量符号一定是不同的!~
例如在开启变量延迟后:
set a=!a:%%a=%%b!
set a=!a:%n%=%m%!
call set a=%%a:!c!=7%%
作者: hsj    时间: 2010-12-5 14:27     标题: 回复 3楼 的帖子

还是不明白应该怎么修改才能实现代码通用。。。批处理中调用变量值只能用%%嘛,如何用不同变量符号呢?
作者: hanyeguxing    时间: 2010-12-5 14:32

请阅读以下资料:
批处理脚本高级编程技巧——变量嵌套
批处理中的变量嵌套变量用法
【教程汇总】批处理中的变量延迟扩展、变量嵌套

[ 本帖最后由 hanyeguxing 于 2010-12-5 14:35 编辑 ]




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2