中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于变量不能正确显示的问题
作者:
标题: 关于变量不能正确显示的问题 上一主题 | 下一主题
cracky
初级用户





积分 28
发帖 10
注册 2007-10-18
状态 离线
『楼 主』:  关于变量不能正确显示的问题

我写了如下的脚本,希望能在发现了80端口占用后,用户手工输入另一个号码然后做其它操作
@echo off
echo "%port80flg%"
set port80flg=
for   /f  "usebackq delims="   %%i   in   (`netstat -ano^|findstr /c:"0.0.0.0:80 "`)   do set   port80flg=%%i
if not "%port80flg%" == "" (
echo "默认端口80已被占用,"
set /p port80flg=请输入合适的端口号:
echo "%port80flg%"
if "%port80flg%"=="81" echo haha
set p
)
但是令我很奇怪的是,如果在80端口被占用的情况下,写入一个新端口号81后由语句echo "%port80flg%"打印出来的结果却不是81,而是for语句那里的最后一次循环赋的值,但最后的set p命令 中显示出来port80flg=81
请各位前辈赐教

2007-12-11 17:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

在本版搜索“变量延迟扩展”



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





积分 28
发帖 10
注册 2007-10-18
状态 离线
『第 3 楼』:  

谢谢指点,实际上我之前也试过采用变量延迟,但是在使用!var!后无法正确显示为变量,实际上是由于没有在之前声明setlocal enabledelayedexpansion导致

2007-12-11 22:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: