请教高手关于批处理的哪些事儿,详细看代码问题补充。

初次接触批处理程序,用批处理做了一个开机验证的小东西。仅用来娱乐的,并没实际意义。如下:@echooffifexistf:\key.txtgoto:end1ifnotex... 初次接触批处理程序,用批处理做了一个开机验证的小东西。仅用来娱乐的,并没实际意义。如下:
@echo off
if exist f:\key.txt goto:end1
if not exist f:\key.txt shutdown -s -t 300
echo 未找到KEY硬件,否则系统将在5分钟内关机。或立即插入KEY设备并按任意键继续
pause>nul
if exist f:\key.txt goto:end
if not exist f:\key.txt echo 未找到验证密钥(3)请按任意键继续。。。
pause>nul
goto:end1
if exist f:\key.txt goto:end
if not exist f:\key.txt echo 未找到验证密钥(2)请按任意键继续。。。
pause>nul
if exist f:\key.txt goto:end
if not exist f:\key.txt echo 未找到验证密钥(1)验证失败,立即关机。
shutdown -a
shutdown -s -t 0
:end
shutdown -a
:end1
echo 通过验证,按任意键退出。
pause>nul

若是第一次开机,直接识别F:\KEY.TXT 后运行正常,但是若是第一次未插入U盘,识别失败后。在验证第二第三第四条时候,即使插入U盘验证成功后,可是系统仍然关机。求解答。谢谢了,测试了几遍没找到答案。
请高手帮忙指导下,在加上一条验证密码的指令。试过输入验证,可是等于和不等于写不好。谢谢了
展开
 我来答
愈未央2I
2013-09-10 · TA获得超过676个赞
知道小有建树答主
回答量:668
采纳率:50%
帮助的人:482万
展开全部
@echo off
:sta
set num=0
set /a num+=1
if exist f:\key.txt (goto k) else (goto k3)
:k
echo 找到密钥,正在验证密钥
ping -n 2 127.1>nul
set /p value=<f:\key.txt
if %value%==123456 (echo 验证通过& pause>nul & exit) else (set num2=0 & goto k3)
:k3
echo 验证失败,请输入密钥
set /a num2+=1
set /p value2=第[%num2%]次输入密钥:
if %num2%==4 (echo 你的机会已经用完,系统即将关机& shutdown -f -s -t 3)
if %value2%==123456 (echo 验证通过&pause>nul&exit) else (cls & goto k3)

以上代码会先查找f:\key.txt,如果存在,
则读取里面内容是否=123456,不等则跳到手动输入密钥,手动输入密码有3次机会,超过3次则自动关机。等于就显示通过,退出程序
如果不存在,跳到手动输入密钥那里
更多追问追答
追问
谢谢谢谢,这次又学到不少用法。我好好理解理解你的批处理。
追答
呵呵,只是用了几个变量和变量引用,等你用for的时候就明白了,到处是变量和引用,比这复杂好多倍。如果觉得满意,望采纳
万山数据
2024-11-14 广告
实时数仓处理是我们北京万山数据科技有限公司数据处理能力的核心之一。它基于先进的流处理技术,能够实时捕获、处理和分析海量数据,确保数据的时效性和准确性。通过构建高效的实时数据管道,我们能够实现数据的即时入库与查询,为业务决策提供强有力的支持。... 点击进入详情页
本回答由万山数据提供
jd08139
2013-09-10 · TA获得超过3733个赞
知道大有可为答主
回答量:2174
采纳率:66%
帮助的人:2848万
展开全部
@echo off
if exist f:\key.txt goto:end1
if not exist f:\key.txt shutdown -s -t 300
echo 未找到KEY硬件,否则系统将在5分钟内关机。或立即插入KEY设备并按任意键继续
pause>nul
if exist f:\key.txt goto:end
if not exist f:\key.txt echo 未找到验证密钥(3)请按任意键继续。。。
pause>nul
Rem goto:end1 去掉这行
if exist f:\key.txt goto:end
if not exist f:\key.txt echo 未找到验证密钥(2)请按任意键继续。。。
pause>nul
if exist f:\key.txt goto:end
if not exist f:\key.txt echo 未找到验证密钥(1)验证失败,立即关机。
shutdown -a
shutdown -s -t 0
:end
shutdown -a
:end1
echo 通过验证,按任意键退出。
pause>nul

 下面是密码验证部分可以独立使用,也可加在以上代码最后面.

@Echo Off
Set n=4
shutdown -s -t 300
:pw
Set /a n-=1
Set /p pw=请输入密码验证:
If %n%==1 (If %pw%==123456 (Echo 密码通过验证,按任意键退出.&shutdown -a&Pause >nul&Exit) else (Echo 密码错误(%n%)!立即关机.&shutdown -a&Echo shutdown -s -t 0&Pause >nul&Exit))
If %pw%==123456 (Echo 密码通过验证,按任意键退出.&shutdown -a&Pause >nul&Exit) else (Echo 密码错误(%n%)!请重新输入.)
Goto:pw
追问
谢谢谢谢,颇为受益,我想让你们每个人都采纳为答案。我好好学学用法。
追答
尽量不修改你的代码.和模仿你的上面写提示.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陈哥深惠通勤
2013-09-10 · TA获得超过1176个赞
知道小有建树答主
回答量:1909
采纳率:33%
帮助的人:835万
展开全部

这里验证第二次,如果没通过验证就会在验证第二次的时候直接跳到“验证通过”,而验证通过标签下面没有shutdown -a 取消关机。。。

追问
恕我大意了,那个 goto end1真不该加上,看了几遍又运行了几遍都没发现,呵呵,谢谢咯
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式