中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 14:23
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [出题] 让批处理自行判断是否被双击运行
可打印版本  3,036 / 20
第1楼 pusofalse 发表于 2008-11-12 18:35
银牌会员 发帖 646 积分 1,604
[出题] 让批处理自行判断是否被双击运行
出题目的:了解批处理运行机制。

加分规则:
思路新颖8分
无临时文件3分
代码简洁3分
完美代码15分

题目内容:
让批处理自行判断是否被双击运行还是在CMD中手动输入运行。
如同tasklist.exe、net.exe、ping.exe,当我们双击这些文件时,会一闪而过,看不到这些命令的帮助信息。只有在CMD中手动输入之后才能看到。现在的题目是编写一个批处理文件,当我们双击运行时(不带任何参数),显示“双击运行”并暂停,如果是在CMD中手动输入运行(同样不带任何参数),显示“CMD中手动输入运行”之后不暂停,直接返回到命令提示符。
第2楼 lxmxn 发表于 2008-11-12 19:49
版主 发帖 4,938 积分 11,386

这样可以吗?
第3楼 pusofalse 发表于 2008-11-12 20:13
银牌会员 发帖 646 积分 1,604
赞佩!
第4楼 BC 发表于 2008-11-12 20:29
中级用户 发帖 175 积分 338
lxmxn够牛的
第5楼 slore 发表于 2008-11-12 22:39
铂金会员 发帖 2,478 积分 5,212
多cmd会……
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>"C:\Documents and Settings\Administrator
\桌面\123.bat"
双击运行
CommandLine
"C:\WINDOWS\system32\cmd.exe"
cmd /c ""C:\Documents and Settings\Administrator\桌面\123.bat" "
cmd /c ""C:\Documents and Settings\Administrator\桌面\123.bat" "
"C:\WINDOWS\system32\cmd.exe"

请按任意键继续. . .
第6楼 lxmxn 发表于 2008-11-13 11:00
版主 发帖 4,938 积分 11,386
re slore:
呵呵,特殊情况自然就没考虑那么多啦。
第7楼 tireless 发表于 2008-12-06 01:01
银牌会员 发帖 1,122 积分 2,025


利用:双击会显示批处理自身的完整路径,而在命令提示符窗口中只显示文件名。
(当然,如果在命令提示符窗口中输入完整路径就会误判了)
第8楼 523066680 发表于 2009-10-10 19:46
银牌会员 发帖 1,133 积分 2,362
会变成经典的!虽然我不是刚来,不过还是灌水顶一下。
第9楼 netbenton 发表于 2009-10-10 21:56
银牌会员 发帖 752 积分 1,916 来自 广西
除非命令行输入时带上双引号,并且还注意有时大写,有时小写,
否则应该不会误判了吧!

第10楼 plp626 发表于 2009-10-11 18:19
银牌会员 发帖 1,020 积分 2,278
re:netbenton

兄的代码还稍欠考虑,系统变量cd有一个特殊情况就是根目录下最后一个字符不带"\",看来这点还是被不少人忽略啊

其实用cmdcmdline变量判断比较正统些。
第11楼 netbenton 发表于 2009-10-11 19:42
银牌会员 发帖 752 积分 1,916 来自 广西
再加一点呢?
第12楼 plp626 发表于 2009-10-12 17:26
银牌会员 发帖 1,020 积分 2,278
这个代码的健壮性大家测试后我再下结论

第13楼 523066680 发表于 2009-10-12 17:42
银牌会员 发帖 1,133 积分 2,362
cmd下调用……


C:\Documents and Settings\liubo\桌面>call a.bat
此时不应有 /c。

C:\Documents and Settings\liubo\桌面>@if ""C:\WINDO"=="cmd /c " (echo 双击) els
(echo 非双击)

C:\Documents and Settings\liubo\桌面>

(温馨提示,liubo不是我的名字,我不叫刘波…… 别恶搞我哈)

[ Last edited by 523066680 on 2009-10-12 at 17:49 ]
第14楼 plp626 发表于 2009-10-12 18:17
银牌会员 发帖 1,020 积分 2,278
健壮性待大家测试

第15楼 plp626 发表于 2009-10-12 18:35
银牌会员 发帖 1,020 积分 2,278
Originally posted by pusofalse at 2008-11-12 06:35 PM:
出题目的:了解批处理运行机制。

加分规则:
思路新颖8分
无临时文件3分
代码简洁3分
完美代码15分

题目内容:
让批处理自行判断是否被 ...


不知道是不是这个意思

http://bbs.bathome.cn/viewthread.php?tid=4725
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023