中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-31 21:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 可自定义密码的密码程序(批处理)[转帖] 查看 5,761 回复 27
16 发表于 2004-01-14 00:00 ·  中国 河北 石家庄 联通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re zww308:

1,你的调用错误,是因为 %0 是指命令行的第一个参数,它可能带扩展名,也可能不带扩展名。我测试的情况,往往是在命令行直接输入程序主文件名,所以从未碰到类似的问题。而你是点击文件测试的,系统使用了完整的程序名,所以会出现此问题。这可以归结为我的windows批处理编程经验的不足,多谢你的提醒。

2,至于你说的用户程序执行两次,我也从未遇到此问题。因为我是将用户程序的调用或者用户权限的划分模块,放在 goto start 之下,密码判断子程序之上的。当然代码会稍有变化。


@echo off
::In shell
if == goto subroutine
:start
command /e:1536 /c %0 $sub
if not exist pass.dat goto start
echo.
echo Run my BAT or enter windows ...
goto end


::In subroutine
:subroutine
......(原来的子程序password.bat)
:quit
rem > pass.dat
cls

:end






※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
17 发表于 2004-01-14 00:00 ·  中国 广东 深圳 鹏博士宽带
初级用户
积分 197
发帖 21
注册 2004-01-09 00:00
22年会员
UID 15212
性别 男
状态 离线
嗯,这样问题就解决了!
至于你说的用户程序执行两次,我也从未遇到此问题。因为我是将用户程序的调用或者用户权限的划分模块,放在 goto start 之下,密码判断子程序之上的。当然代码会稍有变化。
我现在想到或者这样处理也可以:
在 :end后需要执行的用户程序前同样加上“if ==”条件,配合适当的跳转就也可以实现后面的用户程序只运行一次了。
但我还是觉得你那种方法更好,不需要多一个判断。

18 发表于 2004-02-21 00:00 ·  中国 河南 郑州 联通
中级用户
★★
积分 343
发帖 50
注册 2004-02-21 00:00
22年会员
UID 18062
性别 男
状态 离线
不很懂,但长了不少的见识。
19 发表于 2004-05-15 00:00 ·  中国 浙江 温州 电信
初级用户
积分 227
发帖 28
注册 2004-05-15 00:00
22年会员
UID 24421
性别 男
状态 离线
真是高手拆招~
我等菜鸟有幸路过~
无意中长了不少见识!!!
20 发表于 2006-06-10 15:49 ·  中国 云南 昆明 电信
初级用户
积分 48
发帖 18
注册 2006-06-10 14:24
20年会员
UID 56835
状态 离线
长了不少见识
学到不少东西
21 发表于 2006-06-10 22:51 ·  中国 广东 东莞 电信
初级用户
★★
积分 118
发帖 66
注册 2005-10-21 03:27
20年会员
UID 43827
状态 离线
很少见有论坛还存在这种原始的交流精神啊,今天路过真的无比感动!只可惜我如今没有太多的时间来参与你们啊!
22 发表于 2006-06-10 22:53 ·  中国 广东 东莞 电信
初级用户
★★
积分 118
发帖 66
注册 2005-10-21 03:27
20年会员
UID 43827
状态 离线
此贴可长期置顶,以作示范!
23 发表于 2007-03-14 12:54 ·  中国 广东 广州 番禺区 电信
中级用户
★★
脚本爱好者
积分 238
发帖 93
注册 2007-03-11 13:38
19年会员
UID 81417
性别 男
来自 GZ
状态 离线
要学好批处理就要多看这类贴子。
24 发表于 2007-09-19 20:24 ·  中国 四川 德阳 电信
新手上路
积分 10
发帖 5
注册 2007-09-19 18:45
18年会员
UID 97814
性别 男
状态 离线
要是能输入一个数字就显示一个*就更好了
25 发表于 2007-10-04 21:35 ·  中国 浙江 温州 电信
初级用户
★★
积分 158
发帖 89
注册 2007-04-25 08:06
19年会员
UID 86402
性别 男
状态 离线
真牛B I的。
26 发表于 2008-04-24 19:48 ·  中国 云南 昆明 电信
新手上路
积分 4
发帖 2
注册 2008-04-24 18:56
18年会员
UID 116858
性别 男
状态 离线
好东西哦
27 发表于 2010-03-02 19:05 ·  中国 广东 东莞 电信
初级用户
积分 23
发帖 21
注册 2009-05-25 08:11
17年会员
UID 145903
性别 男
状态 离线
都是高手
28 发表于 2010-03-03 02:17 ·  中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
18年会员
UID 119451
性别 男
状态 离线
LS又是挖坟的?
论坛跳转: