![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 08:11 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 最后一个分区的盘符怎样表达 |
| 可打印版本 2,114 / 26 |
| 第16楼 523066680 | 发表于 2008-07-27 17:54 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
在改的帖子里忘了改那一部分…… 郁闷……&更加郁闷……真不好意思……
没脸见人啦…… |
|
| 第17楼 xypcmac | 发表于 2008-07-27 18:14 |
| 初级用户 发帖 80 积分 167 | |
Originally posted by 25167241 at 2008-7-27 17:20: 简单的说: 在命令行逐条执行命令是要遇到类似 %%i 这等参数,%是要减少一个的! [ Last edited by xypcmac on 2008-7-27 at 06:16 PM ] |
|
| 第18楼 xypcmac | 发表于 2008-07-27 18:17 |
| 初级用户 发帖 80 积分 167 | |
|
我觉得大家有点考虑不周全或误会。
1. 虽然U盘分了两个区(既然分了区那应该是USB-HDD模式),但Windows不一定会分配相邻的两个盘符给这两个U分区。 2. 虽然一般情况下,查找所有盘和软件名可以找出要运行的程序并运行。但如果其它盘也有同样名字的文件呢? 有个笨办法可以避免以上问题并正确找到运行: 由批处理本身取得批处理所在盘的盘符(U盘第一分区),然后利用 Ghost32 或 Dsptw 等第三方工具,由盘符查得对应的U盘,反过来,再由U盘查其最后分区。然后运行所要的软件即可。虽然有点点繁琐,但也行之有效。 |
|
| 第19楼 25167241 | 发表于 2008-07-27 18:20 |
| 初级用户 发帖 12 积分 28 来自 广州 | |
|
还差一点 13楼的大侠.%%改%,在CMD可以运行了.不过结果只是搜索程序,并不运行程序,
显示的结果是: 从A到Z (if exist z:\programfile.exe call a:\programfile.exe) …… (if exist z:\programfile.exe call z:\programfile.exe) 其中A B 肯定是不必用的. 也还运行程序.请加油,你一定成的.谢谢了. 最好击开始 运行 CMD 程序试一试,就更有把握了. |
|
| 第20楼 HAT | 发表于 2008-07-27 19:42 |
| 版主 发帖 5,017 积分 9,023 | |
|
楼主还是先搞清楚bat和cmd的区别吧
|
|
| 第21楼 radem | 发表于 2008-07-27 19:49 |
| 高级用户 发帖 383 积分 691 | |
Originally posted by xypcmac at 2008-7-27 06:17 PM: 此言差已..我就有分2个区的U盘,每次插进USB口Windows都是分配相邻的两个盘符 |
|
| 第22楼 xypcmac | 发表于 2008-07-27 19:51 |
| 初级用户 发帖 80 积分 167 | |
Originally posted by 25167241 at 2008-7-27 18:20: 都说了,像这样的当其他电脑上有同样程序名时,会出现混乱... 就不会是你所要的结果了!不过,你也可以改特殊一点的名字。 |
|
| 第23楼 523066680 | 发表于 2008-07-27 20:03 |
| 银牌会员 发帖 1,133 积分 2,362 | |
![]() 发个图片给大家轻松一下 (想起一首歌,如果你觉得轻松就拍拍手…^_^) 关于上面的问题…… 用一个已经成功测试的例子表示&同名的机会还是比较小的 而且是调用程序,如果同名,一般都是一样的东西了 也没必要判断最后一个盘了 看代码: for %a in (b c d e f g h i j k l m n) do (if exist %a:\niubi.exe start %a:\niubi.exe) 关于U盘的分区我不是很了解…… [ Last edited by 523066680 on 2008-7-27 at 08:09 PM ] |
|
| 第24楼 BC | 发表于 2008-07-27 20:13 |
| 中级用户 发帖 175 积分 338 | |
|
@echo off
for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do ( if exist %%i:\nul ( for /f "tokens=3" %%j in ('dir /-c %%i:\') do set freesize=%%j set last=%%i if not "!freesize!"=="0" goto last_drive ) ) goto :eof :last_drive echo 最后一个分区是 %last% md %last%:\001 pause 不是我写的... |
|
| 第25楼 HAT | 发表于 2008-07-27 20:58 |
| 版主 发帖 5,017 积分 9,023 | |
| 第26楼 yangzhiyi | 发表于 2008-07-27 22:42 |
| 中级用户 发帖 123 积分 261 | |
|
2000系统有似没有 wmic
|
|
| 第27楼 bat-zw | 发表于 2008-07-28 01:21 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
先假设这样一个情况成立:当U盘分区后系统是按顺序分配给U盘分区盘符的。
那么楼主的问题可以这样解决: |
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |