![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 17:06 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » dos如何得到系统的最后一个盘符的下一个字母 |
| 可打印版本 956 / 12 |
| 第1楼 cxfaa | 发表于 2008-05-19 11:38 |
| 初级用户 发帖 23 积分 64 | |
|
dos如何得到系统的最后一个盘符的下一个字母 dos如何得到系统的最后一个盘符的下一个字母,如本机有cdefhi个盘,其中i为光驱,现我想设虚拟光驱,其盘符应为i的下一个字符j,由于不同的机子最后一个盘的字母不同,请问如何才能得到最后一个盘符的下一个字母
|
|
| 第2楼 huahua0919 | 发表于 2008-05-19 11:47 |
| 银牌会员 发帖 780 积分 1,608 | |
|
纯DOS下??
|
|
| 第3楼 zqz0012005 | 发表于 2008-05-19 12:40 |
| 中级用户 发帖 135 积分 297 | |
|
其实我觉得批处理新手最先想搞清楚的问题是CMD与DOS的区别(反正当初我是这样)
CMD下的批处理: |
|
| 第4楼 huahua0919 | 发表于 2008-05-19 13:05 |
| 银牌会员 发帖 780 积分 1,608 | |
|
如果是CMD的话,考虑全一些
|
|
| 第5楼 cxfaa | 发表于 2008-05-19 15:03 |
| 初级用户 发帖 23 积分 64 | |
|
4楼你的这段代码好象有问题,不会显示是下一个盘符是什么
@echo off &&setlocal enabledelayedexpansion set "all=abcdefghijklmnopqrstuvwxyz" for /f "skip=1 delims=" %%i in ('wmic logicaldisk get caption') do set drive=%%i set b=%drive:~0,1% if /i "%b%"=="a" echo 你电脑就一个A盘?不可能吧&&pause if /i "%b%"=="z" echo 已经是最后一个盘了,下一个我也不知道是什么盘&&pause for /f "delims=%b% tokens=2" %%i in ("%all%") do ( set a=%%i echo The next number is !a:~0,1! ) pause |
|
| 第6楼 HAT | 发表于 2008-05-19 15:18 |
| 版主 发帖 5,017 积分 9,023 | |
|
大小写的原因,你把小写改成大写就行了。
set "all=ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
|
| 第7楼 26933062 | 发表于 2008-05-19 21:57 |
| 银牌会员 发帖 879 积分 2,268 | |
| 第8楼 zh159 | 发表于 2008-05-20 00:07 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
纯DOS下(自己测试):
|
|
| 第9楼 terse | 发表于 2008-05-20 00:54 |
| 银牌会员 发帖 946 积分 2,404 | |
|
楼上的应该这样吧 改一下
@echo off for %%i in (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 not exist %%i:\nul set x=%%i:\&goto lp :lp echo %x% pause [ Last edited by terse on 2008-5-20 at 12:55 AM ] |
|
| 第10楼 HAT | 发表于 2008-05-20 01:53 |
| 版主 发帖 5,017 积分 9,023 | |
|
楼上两位的代码没能包含光驱盘符,可能无法满足楼主的需要吧。
|
|
| 第11楼 Jneny | 发表于 2008-05-20 03:11 |
| 高级用户 发帖 318 积分 686 | |
|
9楼的合适点。居然是盘符set x=%%i:
|
|
| 第12楼 HAT | 发表于 2008-05-20 09:38 |
| 版主 发帖 5,017 积分 9,023 | |
|
11楼能说说自己的测试环境吗?我这里测试的时候可以返回结果。
C:\test>test.bat D:\ Press any key to continue . . . |
|
| 第13楼 Jneny | 发表于 2008-05-20 18:03 |
| 高级用户 发帖 318 积分 686 | |
|
测试了下,QEMU 0.8+ msdos7.1
&在DOS里识别不了 ![]() 奇怪了,以前没有发现。autoexec.bat set dev=c d e f g ... z call findcd.bat %dev% findcd.bat set cdrom= :1 if %1*==* goto error if not exist %1:\nul goto setcd shift goto 1 :setcd set cdrom=%1: SHSUCDX /D:IDE-CD,%1 echo 你的光驱是 %cdrom% goto end :error echo 不能找到多余的盘符。 :end set dev= [ Last edited by Jneny on 2008-5-21 at 12:24 AM ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |