|
willsort
元老会员
         Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第 16 楼』:
使用 LLM 解释/回答一下
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:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2004-1-14 00:00 |
|
|
zww3008
初级用户
 
积分 197
发帖 21
注册 2004-1-9
状态 离线
|
『第 17 楼』:
使用 LLM 解释/回答一下
嗯,这样问题就解决了! 至于你说的用户程序执行两次,我也从未遇到此问题。因为我是将用户程序的调用或者用户权限的划分模块,放在 goto start 之下,密码判断子程序之上的。当然代码会稍有变化。 我现在想到或者这样处理也可以:
在 :end后需要执行的用户程序前同样加上“if ==”条件,配合适当的跳转就也可以实现后面的用户程序只运行一次了。
但我还是觉得你那种方法更好,不需要多一个判断。
|
|
2004-1-14 00:00 |
|
|
jyssysz
中级用户
  
积分 343
发帖 50
注册 2004-2-21
状态 离线
|
|
2004-2-21 00:00 |
|
|
zgzjwz
初级用户
 
积分 227
发帖 28
注册 2004-5-15
状态 离线
|
|
2004-5-15 00:00 |
|
|
jimolr
初级用户
 
积分 48
发帖 18
注册 2006-6-10
状态 离线
|
|
2006-6-10 15:49 |
|
|
senffon
初级用户
 
积分 118
发帖 66
注册 2005-10-21
状态 离线
|
『第 21 楼』:
使用 LLM 解释/回答一下
很少见有论坛还存在这种原始的交流精神啊,今天路过真的无比感动!只可惜我如今没有太多的时间来参与你们啊!
|
|
2006-6-10 22:51 |
|
|
senffon
初级用户
 
积分 118
发帖 66
注册 2005-10-21
状态 离线
|
|
2006-6-10 22:53 |
|
|
axi
中级用户
   脚本爱好者
积分 238
发帖 93
注册 2007-3-11 来自 GZ
状态 离线
|
|
2007-3-14 12:54 |
|
|
jhyjml
新手上路

积分 10
发帖 5
注册 2007-9-19
状态 离线
|
|
2007-9-19 20:24 |
|
|
kgdetg1127
初级用户
 
积分 158
发帖 89
注册 2007-4-25
状态 离线
|
|
2007-10-4 21:35 |
|
|
d2008
新手上路

积分 4
发帖 2
注册 2008-4-24
状态 离线
|
|
2008-4-24 19:48 |
|
|
myfiyag
初级用户
 
积分 23
发帖 21
注册 2009-5-25
状态 离线
|
|
2010-3-2 19:05 |
|
|
radem
高级用户
    CMD感染者
积分 691
发帖 383
注册 2008-5-23
状态 离线
|
|
2010-3-3 02:17 |
|