|
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 |
|
|
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 |
|
|
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 |
|