中国DOS联盟论坛

中国DOS联盟

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

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

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

SuperCleaner


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

在改的帖子里忘了改那一部分…… 郁闷……&更加郁闷……真不好意思……
没脸见人啦……



综合型编程论坛

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





积分 167
发帖 80
注册 2005-11-7
状态 离线
『第 17 楼』:  



  Quote:
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 ]

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





积分 167
发帖 80
注册 2005-11-7
状态 离线
『第 18 楼』:  

我觉得大家有点考虑不周全或误会。

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

2. 虽然一般情况下,查找所有盘和软件名可以找出要运行的程序并运行。但如果其它盘也有同样名字的文件呢?


有个笨办法可以避免以上问题并正确找到运行:

由批处理本身取得批处理所在盘的盘符(U盘第一分区),然后利用 Ghost32 或 Dsptw 等第三方工具,由盘符查得对应的U盘,反过来,再由U盘查其最后分区。然后运行所要的软件即可。虽然有点点繁琐,但也行之有效。

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





积分 28
发帖 12
注册 2008-7-26
来自 广州
状态 离线
『第 19 楼』:  还差一点

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 程序试一试,就更有把握了.

2008-7-27 18:20
查看资料  发送邮件  发短消息 网志  OICQ (821664905)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 20 楼』:  

楼主还是先搞清楚bat和cmd的区别吧



2008-7-27 19:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
radem
高级用户

CMD感染者


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



  Quote:
Originally posted by xypcmac at 2008-7-27 06:17 PM:
我觉得大家有点考虑不周全或误会。

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

此言差已..我就有分2个区的U盘,每次插进USB口Windows都是分配相邻的两个盘符



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





积分 167
发帖 80
注册 2005-11-7
状态 离线
『第 22 楼』:  



  Quote:
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 ...

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

就不会是你所要的结果了!不过,你也可以改特殊一点的名字。

2008-7-27 19:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


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


发个图片给大家轻松一下 (想起一首歌,如果你觉得轻松就拍拍手…^_^)
关于上面的问题……
用一个已经成功测试的例子表示&同名的机会还是比较小的
而且是调用程序,如果同名,一般都是一样的东西了 也没必要判断最后一个盘了

看代码:
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 ]



综合型编程论坛

我的作品索引
  
2008-7-27 20:03
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
BC
中级用户




积分 338
发帖 175
注册 2007-10-21
状态 离线
『第 24 楼』:  

@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

不是我写的...



C:\
C:\Del BC
2008-7-27 20:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 25 楼』:  


@echo off
for /f %%a in ('"wmic logicaldisk where DriveType="3" get DeviceID |find /v "DeviceID""') do set lastdrive=%%a
echo CMD 下最后分区盘符是 %lastdrive%




2008-7-27 20:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yangzhiyi
中级用户





积分 261
发帖 123
注册 2006-6-6
状态 离线
『第 26 楼』:  

2000系统有似没有 wmic

2008-7-27 22:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 27 楼』:  

先假设这样一个情况成立:当U盘分区后系统是按顺序分配给U盘分区盘符的。
那么楼主的问题可以这样解决:
@echo off&setlocal enabledelayedexpansion
set "code=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"
for %%i in ('cd') do set "a=%%~di"
for %%i in (%code%) do (
     set /a n+=1&set "_!n!=%%i"
     if defined flag goto :next
     if /i "%%i" equ "%a:~,-1%" set "flag=a"
)
:next
start "" "!_%n%!:\programfile.exe"
exit




批处理之家新域名:www.bathome.net
2008-7-28 01:21
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: