批处理if,goto 语句问题。这个判断没用啊。无论机器名是什么,都依次执行过去了

setn="%computername%"ifn==WKS001goto001ifn==WKS002goto002ifn=="WKS006"goto006:001copy... set n="%computername%"
if n==WKS001 goto 001
if n==WKS002 goto 002
if n=="WKS006"goto 006
:001
copy j:\\001\账号列表.ini d:\j:\\001\OPPO脚本 /y
J:
cd\001\OPPO脚本
start ADMIN.exe
:002
copy j:\\002\账号列表.ini d:\j:\\002\OPPO脚本 /y
J:
cd\002\OPPO脚本
start ADMIN.exe
:006
copy j:\\006\账号列表.ini d:\j:\\006\OPPO脚本 /y
J:
cd\006\OPPO脚本
start ADMIN.exe
:007
copy j:\\007\账号列表.ini d:\j:\\007\OPPO脚本 /y
J:
cd\007\OPPO脚本
start ADMIN.exe
pause
展开
 我来答
jd08139
2013-12-23 · TA获得超过3733个赞
知道大有可为答主
回答量:2174
采纳率:66%
帮助的人:2835万
展开全部
@echo off
set n="%computername%"
if %n%=="WKS001" goto 001
if %n%=="WKS002" goto 002
if %n%=="WKS006" goto 006
goto end
:001
copy j:\\001\账号列表.ini d:\j:\\001\OPPO脚本 /y
start J:\001\OPPO脚本\ADMIN.exe
goto end
:002
copy j:\\002\账号列表.ini d:\j:\\002\OPPO脚本 /y
start J:\002\OPPO脚本\ADMIN.exe
goto end
:006
copy j:\\006\账号列表.ini d:\j:\\006\OPPO脚本 /y
start J:\006\OPPO脚本\ADMIN.exe
goto end
:007
copy j:\\007\账号列表.ini d:\j:\\007\OPPO脚本 /y
start J:\007\OPPO脚本\ADMIN.exe
:end
pause

使用变量时需要用%%号括起来,例如%n%.因为变量赋值时加了引号,所以比较时也要加引号.根据你的批处理代码判断你的机器名为固定格式,如果是,可以直接截取机器名作为变量.代码如下:

@echo off
set "n=%computername%"
copy j:\\%n:~3%\账号列表.ini d:\j:\\%n:~3%\OPPO脚本 /y
start J:\%n:~3%\OPPO脚本\ADMIN.exe
pause
依梦琴瑶
高粉答主

2013-12-23 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
在最后一个if下面一行写上exit
你不终止if比较的话,命令当然会继续执行下去啊!
还有每个start和copy下面一行也要写上exit
否则也会继续执行后面的命令的。
反正你记住只要是关于跳转子命令函数的基本都需要终止它,除非你再跳转。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式