中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 22:45
47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » if /i 与 set 命令有冲突吗?
可打印版本  1,114 / 8
第1楼 zjren 发表于 2007-03-27 00:55
初级用户 发帖 22 积分 56
if /i 与 set 命令有冲突吗?
小弟有用到判断条件后set name=##的情况。
发现根本没有执行改句。
set /p sk=[1,2,3]?
if /i "%sk%"="1" set name=酒 goto :吃饭
if /i "%sk%"="2" set name=饭 goto :喝酒

结果不行。
怎么能够用判断 赋予name不同的值?谢谢。
第2楼 zjren 发表于 2007-03-27 00:57
初级用户 发帖 22 积分 56
echo 你好 就可以。
if /i "%sk%"="1" echo 你吃过了。
这句却可以。可见是if /i 与 set 命令不和了。
第3楼 lxmxn 发表于 2007-03-27 01:00
版主 发帖 4,938 积分 11,386

To zjren:

  是不是这里(set name=酒&goto :吃饭)掉了一个&号?
第4楼 zjren 发表于 2007-03-27 01:28
初级用户 发帖 22 积分 56
不知道哪里错了。
@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楼 zjren 发表于 2007-03-27 01:37
初级用户 发帖 22 积分 56
问题解决了。
@set /P CHS = [请选择数字?] 错了,应该是:下面
@set /P CHS= [请选择数字?]
第6楼 zh159 发表于 2007-03-27 01:41
金牌会员 发帖 1,467 积分 3,687
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楼 zjren 发表于 2007-03-27 12:11
初级用户 发帖 22 积分 56
恩.谢了.小弟的批处理技术很刺
真心能向各位大哥学习啊.
第8楼 kisslbye 发表于 2008-09-30 07:17
新手上路 发帖 2 积分 3
我看到过一段 他的可以
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楼 23112656 发表于 2008-10-01 16:30
中级用户 发帖 99 积分 220
你就少了个&
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023