中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 23:44
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » if /i 与 set 命令有冲突吗? 查看 1,117 回复 8
楼 主 if /i 与 set 命令有冲突吗? 发表于 2007-03-27 00:55 ·  中国 广东 电信
初级用户
积分 56
发帖 22
注册 2007-03-27 00:20
19年会员
UID 83001
性别 男
状态 离线
小弟有用到判断条件后set name=##的情况。
发现根本没有执行改句。
set /p sk=[1,2,3]?
if /i "%sk%"="1" set name=酒 goto :吃饭
if /i "%sk%"="2" set name=饭 goto :喝酒

结果不行。
怎么能够用判断 赋予name不同的值?谢谢。
2 echo 你好 就可以。 发表于 2007-03-27 00:57 ·  中国 广东 电信
初级用户
积分 56
发帖 22
注册 2007-03-27 00:20
19年会员
UID 83001
性别 男
状态 离线
if /i "%sk%"="1" echo 你吃过了。
这句却可以。可见是if /i 与 set 命令不和了。
3 发表于 2007-03-27 01:00 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

To zjren:

  是不是这里(set name=酒&goto :吃饭)掉了一个&号?
4 不知道哪里错了。 发表于 2007-03-27 01:28 ·  中国 广东 电信
初级用户
积分 56
发帖 22
注册 2007-03-27 00:20
19年会员
UID 83001
性别 男
状态 离线
@set /P CHS = [请选择数字?]?
if /I "%CHS%"=="a" goto :1
@if /I "%CHS%"=="b" goto :2
@if /I "%CHS%"=="c" goto :3
@if /I "%CHS%"=="d" goto :4
@if /I "%CHS%"=="5" goto :5
@if /I "%CHS%"=="6" goto :6
@if /I "%CHS%"=="7" goto :7
@if /I "%CHS%"=="8" goto :8
@if /I "%CHS%"=="9" goto :10-19
@echo 你的输入有误
goto :end
:1
set name=死亡之屋 && goto :游戏更新
:2
set name=完美世界国际版 && goto :游戏更新
:3
set name=神泣 && goto :游戏更新
:4
set name=QQ音速 && goto :游戏更新
:5
set name=QQ幻想 && goto :游戏更新
:6
set name=冒险岛 && goto :游戏更新
:7
set name=梦幻西游 && goto :游戏更新
:8
set name=街头篮球 && goto :游戏更新
5 问题解决了。 发表于 2007-03-27 01:37 ·  中国 广东 电信
初级用户
积分 56
发帖 22
注册 2007-03-27 00:20
19年会员
UID 83001
性别 男
状态 离线
@set /P CHS = [请选择数字?] 错了,应该是:下面
@set /P CHS= [请选择数字?]
6 发表于 2007-03-27 01:41 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
21年会员
UID 44210
状态 离线
Originally posted by zjren at 2007-3-26 11:55:
小弟有用到判断条件后set name=##的情况。
发现根本没有执行改句。
set /p sk=?
if /i "%sk%"="1" set name=酒 goto :吃饭
if /i "%sk%"="2" set name=饭 goto :喝酒

结果不行。
怎么能够用判断 赋予name不同的值?谢谢。


set name=酒&goto :吃饭
set name=饭&goto :喝酒

Originally posted by zjren at 2007-3-26 12:28:
@set /P CHS = ?
if /I "%CHS%"=="a" goto :1
@if /I "%CHS%"=="b" goto :2
@if /I "%CHS%"=="c" goto :3
@if /I "%CHS%"=="d" goto :4
@if /I "%CHS%"=="5" goto :5
@if /I "%CHS%"=="6" goto :6
@if /I "%CHS%"=="7" goto :7
@if /I "%CHS%"=="8" goto :8
@if /I "%CHS%"=="9" goto :10-19
@echo 你的输入有误
goto :end
:1
set name=死亡之屋 && goto :游戏更新
:2
set name=完美世界国际版 && goto :游戏更新
:3
set name=神泣 && goto :游戏更新
:4
set name=QQ音速 && goto :游戏更新
:5
set name=QQ幻想 && goto :游戏更新
:6
set name=冒险岛 && goto :游戏更新
:7
set name=梦幻西游 && goto :游戏更新
:8
set name=街头篮球 && goto :游戏更新
:end
7 恩.谢了.小弟的批处理技术很刺 发表于 2007-03-27 12:11 ·  中国 广东 湛江 联通
初级用户
积分 56
发帖 22
注册 2007-03-27 00:20
19年会员
UID 83001
性别 男
状态 离线
真心能向各位大哥学习啊.
8 发表于 2008-09-30 07:17 ·  中国 广东 中山 电信
新手上路
积分 3
发帖 2
注册 2008-09-27 10:35
17年会员
UID 126768
性别 男
状态 离线
我看到过一段 他的可以
echo off
SET /P ST= 请输入 Y (现在重启)或 N (稍后重启):
echo.
if /I "%ST%"=="Y" goto R
if /I "%ST%"=="N" goto EX

:r
SHUTDOWN -R -T 120
pause

:ex
echo 还不
pause
9 发表于 2008-10-01 16:30 ·  中国 云南 昆明 电信
中级用户
★★
积分 220
发帖 99
注册 2008-06-26 15:12
18年会员
UID 120818
性别 男
状态 离线
你就少了个&
论坛跳转: