![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 07:06 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 最后一个分区的盘符怎样表达 |
| 可打印版本 2,110 / 26 |
| 第1楼 25167241 | 发表于 2008-07-27 11:29 |
| 初级用户 发帖 12 积分 28 来自 广州 | |
|
最后一个分区的盘符怎样表达 我的U盘分两个分区,我想写一个批处理命令,从第一个分区运行最后一个分区的程序.并且想在任意一台电脑上都能运行.但是,每台机的分区情况都不同,这样最后一个分区的盘符不知道如何表达?请高手帮忙.无限感谢.
谢谢各位鼎力帮助.我的主要目的不是想知道盘符.而是李直接运行不知盘是的程序,如AZCX.EZE,怎样写批处理直接运行它呢?再请各位发表高见.谢谢 [ Last edited by 25167241 on 2008-7-27 at 12:30 PM ] |
|
| 第2楼 523066680 | 发表于 2008-07-27 12:01 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
郁闷 极度郁闷。不会弄
不过有个偏方 假设这个程序是programfile.exe 在该盘主目录下: for %%a in (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) do ( if exist %%a:\programfile.exe call %%a:\programfile.exe ) (此贴并未解决题目中的问题)继续思考中…… |
|
| 第3楼 radem | 发表于 2008-07-27 12:01 |
| 高级用户 发帖 383 积分 691 | |
| 第4楼 obsolete | 发表于 2008-07-27 12:23 |
| 初级用户 发帖 72 积分 192 | |
|
照楼主的想法写了一个,3楼的写法真是大开眼界 不过感觉上面的代码都有局限性的,不一定在任何环境下都能正确执行。 所以我的想法还是结合2楼的方法,如果你的U盘下建一个“特征文件”,就可以判断了。 |
|
| 第5楼 25167241 | 发表于 2008-07-27 13:10 |
| 初级用户 发帖 12 积分 28 来自 广州 | |
|
谢谢,再帮写详细 谢谢你的指点.
我是想在U盘的第一个盘运行最后一个盘的程序,不知盘符,批处理不知如何写. (不是想知道盘符,)请帮忙写一写,谢谢 |
|
| 第6楼 slore | 发表于 2008-07-27 13:58 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
如果在你U盘里,直接用相对路径
|
|
| 第7楼 523066680 | 发表于 2008-07-27 14:03 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
按照5楼的说法 我2楼的代码应该可以解决了吧
|
|
| 第8楼 25167241 | 发表于 2008-07-27 14:36 |
| 初级用户 发帖 12 积分 28 来自 广州 | |
|
还不成 谢谢2楼.
我在CMD上试运行,提示命令出错. 是DOS和CMD命令不一样吗? |
|
| 第9楼 25167241 | 发表于 2008-07-27 14:44 |
| 初级用户 发帖 12 积分 28 来自 广州 | |
|
能写具体一点吗 谢谢4楼的朋友.
U盘在两个区.不知盘符.在第一个区的批处理命令要运行最后一个区的 AZCX.EZE 程序.这个批处理应怎样写.请花点心思.谢谢了. [ Last edited by 25167241 on 2008-7-27 at 02:46 PM ] |
|
| 第10楼 obsolete | 发表于 2008-07-27 16:01 |
| 初级用户 发帖 72 积分 192 | |
|
不明白...2楼的方法就能用啊,你把programfile.exe替换成你的程序就好了。
|
|
| 第11楼 slore | 发表于 2008-07-27 16:45 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
@echo off&setlocal ENABLEDELAYEDEXPANSION
Set AllDr=ABCDEFGHIJKLMNOPQRSTUVWXYZ无 Set MyDr=%~d0 for /l %%i in (0,1,25) do ( Call :GetDr %%i if /i %MyDr%==!EaDr! Call :ExitFor %%i&&Goto :Next ) :GetDr Set EaDr=!AllDr:~%1,1!: Goto :EOF :ExitFor Set /a InDr=%1+1 Echo 下一个分区是:!AllDr:~%InDr%,1! Goto :EOF :Next pause |
|
| 第12楼 25167241 | 发表于 2008-07-27 17:00 |
| 初级用户 发帖 12 积分 28 来自 广州 | |
|
能用CMD试吗? 11楼的大侠
我运行CMD,把您的命令贴上去.就提示出错. 能这样试吗? 在当前盘中,要运行最后一个盘的ZCMA.EXE,这个批处理命令,帮我写一写好吗,谢谢了. |
|
| 第13楼 523066680 | 发表于 2008-07-27 17:04 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
郁闷,极度郁闷!8楼的话足以让我吐血!cmd和dos命令……区别……
我太嫩了!真的不知道这两者有什么区别 不过我知道批处理和在命令行中执行的时候 有区别 我把2楼代码改下,你可以直接在命令行中用 for %%a in (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) do (if exist %%a:\programfile.exe call %%a:\programfile.exe) --------------------------------------------------------------------------------------------------------- 经过十四楼与十五楼的温馨提示,以上代码改为 for %a in (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) do (if exist %%a:\programfile.exe call %a:\programfile.exe) [ Last edited by 523066680 on 2008-7-27 at 06:02 PM ] |
|
| 第14楼 25167241 | 发表于 2008-07-27 17:20 |
| 初级用户 发帖 12 积分 28 来自 广州 | |
|
效果是这样 13楼的大侠
我运行XP 的 CMD 程序. 把您的命令贴上去. 提示此时不应有%%a 不要郁闷,解决问题就会得到快乐. |
|
| 第15楼 obsolete | 发表于 2008-07-27 17:28 |
| 初级用户 发帖 72 积分 192 | |
|
批处理和控制台直接运行还是有点不同的,恩,把上面的%%都改成%,再运行试试
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |