中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求解set命令“!!”格式使用?
作者:
标题: 求解set命令“!!”格式使用? 上一主题 | 下一主题
zxone
初级用户




积分 38
发帖 13
注册 2007-5-11
状态 离线
『楼 主』:  求解set命令“!!”格式使用?

下面是别人写的批处理文件,主要是把ping命令里的部分英文单词翻译并原样输出。
对于  set ret=
    echo %%i
    for %%a in (%%i) do echo %%a &&if defined %%a (set ret=!ret!!%%a!) else set ret=!ret! %%a
    if not "!ret!"=="" (set ret=!ret:time=时间! && echo !ret!) else echo.
)
特别是set ret=!ret!!%%a!的用法搞不清楚,目前也就是set命令的“!!”格式搞不大明白,请解惑!



@echo off
color f2
echo.
set for=于
set of=的
set with=用
set in=(以
set data:=数据
set milli-seconds:=毫秒为单位)
set Approximate=大约
set times=时间:
set round=来回
set trip=行程
set Reply=应答
set from=来自
set bytes=字节
set time=时间:
set timed=时间
set out=超过
set statistics=统计
set Packets:=包:
set Sent=已发送=
set Received=已收到=
set Lost=已丢失=
set loss)=丢失)
set Minimum=最小值=
set Maximum=最大值=
set Average=平均值=
set TTL=TTL=
setlocal enabledelayedexpansion
set a=
set/p a=请输入要ping的网址或IP   
for /f "delims=" %%i in ('ping %a%') do (
    set ret=
    echo %%i
    for %%a in (%%i) do echo %%a &&if defined %%a (set ret=!ret!!%%a!) else set ret=!ret! %%a
    if not "!ret!"=="" (set ret=!ret:time=时间! && echo !ret!) else echo.
)
pause>nul

2008-2-26 12:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 2 楼』:  

递归调用
尝试以下代码:
@echo off &setlocal enabledelayedexpansion
set a=
for /l %%i in (1 1 20) do (if not defined !a! (set a=!a!%%i)
echo !a!)
pause


2008-2-26 14:41
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
zxone
初级用户




积分 38
发帖 13
注册 2007-5-11
状态 离线
『第 3 楼』:  

感谢二楼,终于搞懂了这个bat
  ::  if not "!ret!"=="" (set ret=!ret:time=时间! && echo !ret!) else echo.里的echo !ret!用于输出
  ::  set ret=!ret:time=时间!的含义是用“时间”替代“time”,但完全没有用处。
  ::  if not "!ret!"==""  echo !ret!如果以如此格式执行,即没有括号,也能正确输出,但有变化。

2008-2-26 21:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jia332
初级用户





积分 160
发帖 81
注册 2006-7-27
状态 离线
『第 4 楼』:  

还是没有看明白,继续努力中

2008-5-17 13:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: