中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 13:00
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » 可自定义密码的密码程序(批处理)[转帖]
可打印版本  6,114 / 27
第16楼 willsort 发表于 2004-01-14 00:00
元老会员 发帖 1,512 积分 4,432
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






第17楼 zww3008 发表于 2004-01-14 00:00
初级用户 发帖 21 积分 197
嗯,这样问题就解决了!
至于你说的用户程序执行两次,我也从未遇到此问题。因为我是将用户程序的调用或者用户权限的划分模块,放在 goto start 之下,密码判断子程序之上的。当然代码会稍有变化。
我现在想到或者这样处理也可以:
在 :end后需要执行的用户程序前同样加上“if ==”条件,配合适当的跳转就也可以实现后面的用户程序只运行一次了。
但我还是觉得你那种方法更好,不需要多一个判断。

第18楼 jyssysz 发表于 2004-02-21 00:00
中级用户 发帖 50 积分 343
不很懂,但长了不少的见识。
第19楼 zgzjwz 发表于 2004-05-15 00:00
初级用户 发帖 28 积分 227
真是高手拆招~
我等菜鸟有幸路过~
无意中长了不少见识!!!
第20楼 jimolr 发表于 2006-06-10 15:49
初级用户 发帖 18 积分 48
长了不少见识
学到不少东西
第21楼 senffon 发表于 2006-06-10 22:51
初级用户 发帖 66 积分 118
很少见有论坛还存在这种原始的交流精神啊,今天路过真的无比感动!只可惜我如今没有太多的时间来参与你们啊!
第22楼 senffon 发表于 2006-06-10 22:53
初级用户 发帖 66 积分 118
此贴可长期置顶,以作示范!
第23楼 axi 发表于 2007-03-14 12:54
中级用户 发帖 93 积分 238 来自 GZ
要学好批处理就要多看这类贴子。
第24楼 jhyjml 发表于 2007-09-19 20:24
新手上路 发帖 5 积分 10
要是能输入一个数字就显示一个*就更好了
第25楼 kgdetg1127 发表于 2007-10-04 21:35
初级用户 发帖 89 积分 158
真牛B I的。
第26楼 d2008 发表于 2008-04-24 19:48
新手上路 发帖 2 积分 4
好东西哦
第27楼 myfiyag 发表于 2010-03-02 19:05
初级用户 发帖 21 积分 23
都是高手
第28楼 radem 发表于 2010-03-03 02:17
高级用户 发帖 383 积分 691
LS又是挖坟的?
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023