中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 最后一个分区的盘符怎样表达
<<   [1] [2]  >>   >
作者:
标题: 最后一个分区的盘符怎样表达 上一主题 | 下一主题
25167241
初级用户





积分 28
发帖 12
注册 2008-7-26
来自 广州
状态 离线
『楼 主』:  最后一个分区的盘符怎样表达

我的U盘分两个分区,我想写一个批处理命令,从第一个分区运行最后一个分区的程序.并且想在任意一台电脑上都能运行.但是,每台机的分区情况都不同,这样最后一个分区的盘符不知道如何表达?请高手帮忙.无限感谢. 谢谢各位鼎力帮助.我的主要目的不是想知道盘符.而是李直接运行不知盘是的程序,如AZCX.EZE,怎样写批处理直接运行它呢?再请各位发表高见.谢谢 [ Last edited by 25167241 on 2008-7-27 at 12:30 PM ]


2008-7-27 11:29
查看资料  发送邮件  发短消息  网志  OICQ (821664905)  编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 2 楼』:  

郁闷 极度郁闷。不会弄 不过有个偏方 假设这个程序是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 ) (此贴并未解决题目中的问题)继续思考中……




2008-7-27 12:01
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
radem
高级用户

CMD感染者


积分 691
发帖 383
注册 2008-5-23
状态 离线
『第 3 楼』:  

@echo off
for /f "delims=驱动器:" %%i in ('fsutil fsinfo drives^|more') do fsutil fsinfo drivetype %%i:|findstr "移动">nul&&set str=%%i
echo 你的U盘盘符是:%str%
pause>nul


   此帖被 +4 点积分    点击查看详情   
评分人:【 obsolete 分数: +2  时间:2008-7-27 12:18
评分人:【 qianmo717 分数: +2  时间:2008-7-27 17:31




2008-7-27 12:01
查看资料  发短消息  网志   编辑帖子  回复  引用回复
obsolete
初级用户





积分 192
发帖 72
注册 2005-7-31
状态 离线
『第 4 楼』:  

@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 (
	vol %%i: 1>nul 2>nul
	if not errorlevel 1 (
		echo %%i
		pause & goto :EOF
	)
)
照楼主的想法写了一个,3楼的写法真是大开眼界 不过感觉上面的代码都有局限性的,不一定在任何环境下都能正确执行。 所以我的想法还是结合2楼的方法,如果你的U盘下建一个“特征文件”,就可以判断了。


2008-7-27 12:23
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
25167241
初级用户





积分 28
发帖 12
注册 2008-7-26
来自 广州
状态 离线
『第 5 楼』:  谢谢,再帮写详细

谢谢你的指点. 我是想在U盘的第一个盘运行最后一个盘的程序,不知盘符,批处理不知如何写. (不是想知道盘符,)请帮忙写一写,谢谢


2008-7-27 13:10
查看资料  发送邮件  发短消息  网志  OICQ (821664905)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:  

如果在你U盘里,直接用相对路径




S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-7-27 13:58
查看资料  发短消息  网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 7 楼』:  

按照5楼的说法 我2楼的代码应该可以解决了吧




2008-7-27 14:03
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
25167241
初级用户





积分 28
发帖 12
注册 2008-7-26
来自 广州
状态 离线
『第 8 楼』:  还不成

谢谢2楼. 我在CMD上试运行,提示命令出错. 是DOS和CMD命令不一样吗?


2008-7-27 14:36
查看资料  发送邮件  发短消息  网志  OICQ (821664905)  编辑帖子  回复  引用回复
25167241
初级用户





积分 28
发帖 12
注册 2008-7-26
来自 广州
状态 离线
『第 9 楼』:  能写具体一点吗

谢谢4楼的朋友. U盘在两个区.不知盘符.在第一个区的批处理命令要运行最后一个区的 AZCX.EZE 程序.这个批处理应怎样写.请花点心思.谢谢了. [ Last edited by 25167241 on 2008-7-27 at 02:46 PM ]


2008-7-27 14:44
查看资料  发送邮件  发短消息  网志  OICQ (821664905)  编辑帖子  回复  引用回复
obsolete
初级用户





积分 192
发帖 72
注册 2005-7-31
状态 离线
『第 10 楼』:  

不明白...2楼的方法就能用啊,你把programfile.exe替换成你的程序就好了。


2008-7-27 16:01
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 11 楼』:  

@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




S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-7-27 16:45
查看资料  发短消息  网志   编辑帖子  回复  引用回复
25167241
初级用户





积分 28
发帖 12
注册 2008-7-26
来自 广州
状态 离线
『第 12 楼』:  能用CMD试吗?

11楼的大侠 我运行CMD,把您的命令贴上去.就提示出错. 能这样试吗? 在当前盘中,要运行最后一个盘的ZCMA.EXE,这个批处理命令,帮我写一写好吗,谢谢了.


2008-7-27 17:00
查看资料  发送邮件  发短消息  网志  OICQ (821664905)  编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 13 楼』:  

郁闷,极度郁闷!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 ]




2008-7-27 17:04
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
25167241
初级用户





积分 28
发帖 12
注册 2008-7-26
来自 广州
状态 离线
『第 14 楼』:  效果是这样

13楼的大侠 我运行XP 的 CMD 程序. 把您的命令贴上去. 提示此时不应有%%a 不要郁闷,解决问题就会得到快乐.


2008-7-27 17:20
查看资料  发送邮件  发短消息  网志  OICQ (821664905)  编辑帖子  回复  引用回复
obsolete
初级用户





积分 192
发帖 72
注册 2005-7-31
状态 离线
『第 15 楼』:  

批处理和控制台直接运行还是有点不同的,恩,把上面的%%都改成%,再运行试试


2008-7-27 17:28
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
<<   [1] [2]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: