中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教一个问题,为什么我不能取变量a中的字符[,谢谢
作者:
标题: 请教一个问题,为什么我不能取变量a中的字符[,谢谢 上一主题 | 下一主题
wangyao
新手上路





积分 18
发帖 8
注册 2007-7-11
状态 离线
『楼 主』:  请教一个问题,为什么我不能取变量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


2007-7-12 10:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangyao
新手上路





积分 18
发帖 8
注册 2007-7-11
状态 离线
『第 2 楼』:  格式如下

[server check] 不能读取第一个字符


2007-7-12 10:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 3 楼』:  

哪来的变量%a%??? 即 set "t=%a:~0,1% "%a:~0,2"=="["


2007-7-12 10:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wangyao
新手上路





积分 18
发帖 8
注册 2007-7-11
状态 离线
『第 4 楼』:  那问一下,去%%a变量中的第一个字符[ 该怎么写,谢谢

我查了很多资料,好像都不对,谢谢


2007-7-12 10:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 5 楼』:  

set "t=%a:~0,1% 是想取到serverip.inf中的第一个字符吗? 为何不
set "t=%%a"
set "t=%t:~0,1%
?? 这里"%a:~0,2"=="[" 也??


2007-7-12 11:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
luowei14
初级用户




积分 193
发帖 98
注册 2007-1-17
状态 离线
『第 6 楼』:  

变量A在哪...怎么个取法 [ Last edited by luowei14 on 2007-7-12 at 07:01 PM ]




这家伙很聪明 什么都没留下
2007-7-12 19:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangyao
新手上路





积分 18
发帖 8
注册 2007-7-11
状态 离线
『第 7 楼』:  如下

for /f "tokens=1,2" %%a in (serverip.inf) 从文本中取出[network]放入%%a 然后判断第一个字符是否是[, 就是这样子, 我试了好多办法多实现不了,请指教,谢谢.


2007-7-13 09:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 8 楼』:  

试试这样,是可以的:
@set _debug=
@echo %_debug% off & setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%i in ('dir /a-d/b') do (
	set var=%%i
	echo !var!		---	!var:~0,1!)




偶只喜欢回答那些标题和描述都很清晰的帖子! 如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-7-13 10:06
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
wangyao
新手上路





积分 18
发帖 8
注册 2007-7-11
状态 离线
『第 9 楼』:  如下

如何判断取出的值是"[",我试了,好象报驱动盘符不对, 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% )


2007-7-13 10:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangyao
新手上路





积分 18
发帖 8
注册 2007-7-11
状态 离线
『第 10 楼』:  如题,

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!能正确显示结果了,可条件判断该怎么做呢. 谢谢 


2007-7-13 10:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 11 楼』:  

这两行应该写在一行: if "!t:~0,1!" == "[" echo "wonderful" 即: if "!t:~0,1!" == "[" echo "wonderful" 批处理不是C语言,你不能按照C的语法去写批处理。




偶只喜欢回答那些标题和描述都很清晰的帖子! 如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-7-13 10:27
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
wangyao
新手上路





积分 18
发帖 8
注册 2007-7-11
状态 离线
『第 12 楼』:  如题,

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,为什么这里不可以 还有能不能给参考资料看看,关于编写格式方面的,谢谢了.


2007-7-13 10:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangyao
新手上路





积分 18
发帖 8
注册 2007-7-11
状态 离线
『第 13 楼』:  总算解决了,谢谢climbing

总算解决了,谢谢climbing


2007-7-13 11:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 14 楼』:  

IF EXIST filename. ( del filename. ) ELSE ( echo filename. missing. ) 上面是标准的写法,注意()是怎么用的。 其实没有什么参考资料,最好的参考资料就是微软的帮助。例如: if /?




偶只喜欢回答那些标题和描述都很清晰的帖子! 如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-7-13 11:28
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复

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


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



论坛跳转: