![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-24 19:27 |
共 47,812 主题排行 / 349,910 发帖 / 今日 1 篇 / 48,262 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 隐藏我的电脑的盘符 |
| 可打印版本 2,583 / 15 |
| 第1楼 darkkid | 发表于 2009-04-13 06:44 |
| 初级用户 发帖 12 积分 34 | |
|
隐藏我的电脑的盘符 注释一下,核心代码就是3条for语句 第一条用来小写转换为大写 第二条用来判断是否重复输入了 第三条用来为每个盘符赋值的 特别感谢netbenton,和那位给出个示例代码的大哥 非常感谢netbenton你,令我感悟到了新一步 回复用gpupdate那个,我的杀毒软件会警报啊。。。 ============版主请看我的跟帖 [ Last edited by darkkid on 2009-4-15 at 22:07 ] |
|
| 第2楼 freeants001 | 发表于 2009-04-13 06:48 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
这么长,沙发~
|
|
| 第3楼 yishanju | 发表于 2009-04-13 07:19 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
做梦都没想能写这么长的代码
|
|
| 第4楼 HAT | 发表于 2009-04-13 07:32 |
| 版主 发帖 5,017 积分 9,023 | |
|
新人发帖,加分鼓励。
建议楼主可以尝试把这个300多行的代码缩短到100行以内。 |
|
| 第5楼 netbenton | 发表于 2009-04-13 07:49 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
这样可以省掉多个if ... goto 和多个for ...判断是否已经输入过
set "str= a b c d e f g h i j k l m n o p q r s t u v w x y z " if not "!str: %drv% =!"=="!str!" ( if not "!ain: %drv% =!"=="!ain!" (set "ain=%ain% %drv% "&goto :part%drv%) ) 盘符与数的对应关系为: a 1 b 2 c 4 d 8 e 16 f 32 g 64 h 128 ... 这样可以得到对应数值: set n=1 for %%a in (%str%) do if "%drv%"=="%%a" (goto :ok) else (set/a n=n+n) :ok 再想办法转成16进制,可省去多个分支的做法。 用上面的方法,可把代码控制在50行以内 楼主可以试一下 [ Last edited by netbenton on 2009-4-13 at 06:15 ] |
|
| 第6楼 darkkid | 发表于 2009-04-13 08:08 |
| 初级用户 发帖 12 积分 34 | |
|
回netbenton
明白你的想法了。 现阶段的我对你的代码理解起来有困难,等我慢慢参透一下, [ Last edited by darkkid on 2009-4-13 at 08:26 ] |
|
| 第7楼 zh159 | 发表于 2009-04-13 10:26 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
N久前收藏的
|
|
| 第8楼 wxcute | 发表于 2009-04-13 11:00 |
| 中级用户 发帖 211 积分 458 | |
|
回复 zh159:
这个代码居然有人收藏,真是荣幸、荣幸之至。 |
|
| 第9楼 netbenton | 发表于 2009-04-13 20:39 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
改得不错,新人,加分,
其实偶也“旧”不了多少。呵呵 |
|
| 第10楼 dnntgmfd | 发表于 2009-04-13 23:16 |
| 初级用户 发帖 52 积分 85 来自 湘乡 | |
|
大家可以试着把你的系统盘隐藏,,,有很好的效果,,,反正我试过了,,,,
就连开网页都打不开了,,有意向的朋友可以 |
|
| 第11楼 HAT | 发表于 2009-04-14 00:14 |
| 版主 发帖 5,017 积分 9,023 | |
|
粗略的看了一遍,提出几个疑问:
:: 说明,本批处理的功能是隐藏在Windows资源管理器中的磁盘盘符,一定程度上保护了个人的隐私。任何人都能通过记事本来编辑这个批处理,使得它的功能更加强大,效率更加高。小民,2009年4月12日,为学习好批处理,在此分享。 |
|
| 第12楼 tireless | 发表于 2009-04-14 02:14 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
可以用 gpupdate.exe /force 代替重启 explorer.exe 进程。
|
|
| 第13楼 darkkid | 发表于 2009-04-14 10:23 |
| 初级用户 发帖 12 积分 34 | |
|
修正了个小错误,把set n=1放到了:hidedrv之外了,导致隐藏多个盘符时,除第一个盘符外的都赋值错误,也在此谢谢tireless
以下回版主HAT 首先关于@这个符号,我的代码当中可有可没,嫌弃它碍眼就删吧,因为我在第一行已经输入了echo off这句。如果在每句之前加这个@号,其作用等于echo off。 你所谓的输入异常应该是在第一次输入的时候吧,显示为echo 消息为关闭?其实不是大问题,不只:,所有非abcdefg。。。。。。的字符串都会出现的,完全不理会都没问题的,主要是我开始为了显示"暂无输入"的后遗症,当我清空了显示列表后,echo无法显示空字符串而已 我那句转换大小写,首先,嗯,我说我有点新人吧,我不知道if的这个参数,这么好用的东西谢谢版主教导,如果想用这个参数,把我str的大写A B C D。。。。。改为a b c d。。。。。就能运行,只是运行时,没那么好看,显示的都是小写,不改了,我喜欢漂亮一点的。 最后那个无它,也是不知道而已 现在要上学,上网不方便,周末回家再搞 |
|
| 第14楼 HAT | 发表于 2009-04-15 02:36 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 13楼 关于用户输入一个双引号的问题,等你以后遇到无法忽略它的情况再回来讨论吧,现在你坚持这样用就这样用吧。
|
|
| 第15楼 darkkid | 发表于 2009-04-15 02:52 |
| 初级用户 发帖 12 积分 34 | |
|
输入双引号起码这里没事,具体问题具体分析,到时再算
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |