![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 15:24 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求解set命令“!!”格式使用? |
| 可打印版本 846 / 3 |
| 第1楼 zxone | 发表于 2008-02-26 12:23 |
| 初级用户 发帖 13 积分 38 | |
|
求解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 |
|
| 第2楼 huahua0919 | 发表于 2008-02-26 14:41 |
| 银牌会员 发帖 780 积分 1,608 | |
|
递归调用
尝试以下代码: |
|
| 第3楼 zxone | 发表于 2008-02-26 21:29 |
| 初级用户 发帖 13 积分 38 | |
|
感谢二楼,终于搞懂了这个bat
:: if not "!ret!"=="" (set ret=!ret:time=时间! && echo !ret!) else echo.里的echo !ret!用于输出 :: set ret=!ret:time=时间!的含义是用“时间”替代“time”,但完全没有用处。 :: if not "!ret!"=="" echo !ret!如果以如此格式执行,即没有括号,也能正确输出,但有变化。 |
|
| 第4楼 jia332 | 发表于 2008-05-17 13:38 |
| 初级用户 发帖 81 积分 160 | |
|
还是没有看明白,继续努力中
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |