![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 11:11 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教一个问题,为什么我不能取变量a中的字符[,谢谢 |
| 可打印版本 1,014 / 13 |
| 第1楼 wangyao | 发表于 2007-07-12 10:12 |
| 新手上路 发帖 8 积分 18 | |
|
请教一个问题,为什么我不能取变量a中的字符[,谢谢 @echo off
rem set errorlevel= set yymmddhh=%date:~6,4%%date:~0,2%%date:~3,2% set hh=%time:~0,2% set hh=%hh: =0% set yymmddhh=%yymmddhh%-%hh%.log for /f "tokens=1,2" %%a in (serverip.inf) do ( set "t=%a:~0,1% echo %%t if "%a:~0,2"=="[" ( echo %%a>>%yymmddhh%-%hh%.log ) else ( ping -n 1 "%%a" | find "out" if not errorlevel 1 echo Server %%a is in unhealthy condition!>>%yymmddhh% ) ) if exist %yymmddhh% goto error echo All server are running well. It's a wonderful day!>>%yymmddhh% goto end :error echo Some servers are suffering from problems, please check them in depth!>>%yymmddhh% :end |
|
| 第2楼 wangyao | 发表于 2007-07-12 10:21 |
| 新手上路 发帖 8 积分 18 | |
|
格式如下 [server check]
不能读取第一个字符 |
|
| 第3楼 wudixin96 | 发表于 2007-07-12 10:29 |
| 银牌会员 发帖 931 积分 1,928 | |
|
哪来的变量%a%???
即 set "t=%a:~0,1% "%a:~0,2"=="[" |
|
| 第4楼 wangyao | 发表于 2007-07-12 10:38 |
| 新手上路 发帖 8 积分 18 | |
|
那问一下,去%%a变量中的第一个字符[ 该怎么写,谢谢 我查了很多资料,好像都不对,谢谢
|
|
| 第5楼 wudixin96 | 发表于 2007-07-12 11:21 |
| 银牌会员 发帖 931 积分 1,928 | |
|
set "t=%a:~0,1% 是想取到serverip.inf中的第一个字符吗?
为何不 ?? 这里"%a:~0,2"==" |
|
| 第6楼 luowei14 | 发表于 2007-07-12 19:00 |
| 初级用户 发帖 98 积分 193 | |
|
变量A在哪...怎么个取法
[ Last edited by luowei14 on 2007-7-12 at 07:01 PM ] |
|
| 第7楼 wangyao | 发表于 2007-07-13 09:20 |
| 新手上路 发帖 8 积分 18 | |
|
如下 for /f "tokens=1,2" %%a in (serverip.inf)
从文本中取出[network]放入%%a 然后判断第一个字符是否是[, 就是这样子, 我试了好多办法多实现不了,请指教,谢谢. |
|
| 第8楼 Climbing | 发表于 2007-07-13 10:06 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
试试这样,是可以的:
|
|
| 第9楼 wangyao | 发表于 2007-07-13 10:17 |
| 新手上路 发帖 8 积分 18 | |
|
如下 如何判断取出的值是"[",我试了,好象报驱动盘符不对,
for /f "tokens=1,2" %%a in (serverip.inf) do ( set t=%%a !t:~0,1! echo !t! ping -n 1 "%%a" | find "out" if not errorlevel 1 echo Server %%a is in unhealthy condition!>>%yymmddhh% ) |
|
| 第10楼 wangyao | 发表于 2007-07-13 10:22 |
| 新手上路 发帖 8 积分 18 | |
|
如题, for /f "tokens=1,2" %%a in (serverip.inf) do (
set t=%%a if "!t:~0,1!" == "[" echo "wonderful" ping -n 1 "%%a" | find "out" if not errorlevel 1 echo Server %%a is in unhealthy condition!>>%yymmddhh% ) 我如何做条件判断,echo !t:~0,1!能正确显示结果了,可条件判断该怎么做呢. 谢谢 |
|
| 第11楼 Climbing | 发表于 2007-07-13 10:27 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
这两行应该写在一行:
if "!t:~0,1!" == "[" echo "wonderful" 即: if "!t:~0,1!" == "[" echo "wonderful" 批处理不是C语言,你不能按照C的语法去写批处理。 |
|
| 第12楼 wangyao | 发表于 2007-07-13 10:40 |
| 新手上路 发帖 8 积分 18 | |
|
如题, for /f "tokens=1,2" %%a in (serverip.inf) do (
set t=%%a if "!t:~0,1!"=="[" ( echo %%a %%b ) else( ping -n 1 "%%a" | find "out" if not errorlevel 1 echo Server %%a is in unhealthy condition!>>%yymmddhh% ) ) 这样写可以吗,谢谢,好像有问题.有些文章能用ELSE,为什么这里不可以 还有能不能给参考资料看看,关于编写格式方面的,谢谢了. |
|
| 第13楼 wangyao | 发表于 2007-07-13 11:13 |
| 新手上路 发帖 8 积分 18 | |
|
总算解决了,谢谢climbing 总算解决了,谢谢climbing
|
|
| 第14楼 Climbing | 发表于 2007-07-13 11:28 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
IF EXIST filename. (
del filename. ) ELSE ( echo filename. missing. ) 上面是标准的写法,注意()是怎么用的。 其实没有什么参考资料,最好的参考资料就是微软的帮助。例如: if /? |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |