中国DOS联盟论坛

中国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:
13楼的大侠
我运行XP 的 CMD 程序.
把您的命令贴上去.
提示此时不应有%%a
不要郁闷,解决问题就会得到快乐.



简单的说:
在命令行逐条执行命令是要遇到类似 %%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:
我觉得大家有点考虑不周全或误会。

1. 虽然U盘分了两个区(既然分了区那应该是USB-HDD模式),但Windows不一定会分配相邻的两个盘符给这两个U分区 ...


此言差已..我就有分2个区的U盘,每次插进USB口Windows都是分配相邻的两个盘符
第22楼 xypcmac 发表于 2008-07-27 19:51
初级用户 发帖 80 积分 167
Originally posted by 25167241 at 2008-7-27 18:20:
13楼的大侠.%%改%,在CMD可以运行了.不过结果只是搜索程序,并不运行程序,
显示的结果是: 从A到Z
(if exist z:\programfile.exe call a:\programfile.exe)
……
(if exis ...


都说了,像这样的当其他电脑上有同样程序名时,会出现混乱...

就不会是你所要的结果了!不过,你也可以改特殊一点的名字。
第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