Board logo

标题: (已解决)怎样在DOS批处理文件里取得U盘的盘符? [打印本页]

作者: chenqiguang     时间: 2006-12-26 23:55    标题: (已解决)怎样在DOS批处理文件里取得U盘的盘符?
U盘制作的DOS启动盘启动到MS-DOS7.1后,在有些机器上的盘符为“A:” ,而在另一些机器上的盘符又为“C:”。
U盘中的批处理文件 autoexec.bat 当U盘的盘符为“A:”时,需要执行程序A;当U盘的盘符为“C:”时,需要执行程序C。
请问怎样在DOS批处理文件 autoexec.bat 里取得U盘的盘符来实现?
先谢谢啦!

用网友介绍的方法搞定。

可以在你的U盘根目录放一个特征文件,用于判断。
假如文件为myudisk.000
if not exit a:\myudisk.000 goto c
a
goro exit

:c
c

:exit


再次谢谢热心网友的解答!

Last edited by chenqiguang on 2006-12-27 at 10:39 PM ]

作者: gene771771     时间: 2006-12-27 02:50
讨论过N次了,用论坛搜索功能。。。
http://www.cn-dos.net/forum/search.php

作者: win2ye     时间: 2006-12-27 04:44
Originally posted by chenqiguang at 2006-12-26 23:55:
U盘制作的DOS启动盘启动到MS-DOS7.1后,在有些机器上的盘符为“A:” ,而在另一些机器上的盘符又为“C:”。
U盘中的批处理文件 autoexec.bat 当U盘的盘符 ...




以USB-ZIP方式启动U盘,则盘符为“A:”
以USB-HDD方式启动U盘,则盘符为“C:”。

作者: zh159     时间: 2006-12-27 05:13
如果真是如此变化,最简单的办法:
硬盘C:盘不要有相同文件名

if exist a:\*1.* a:\*1.*
if exist c:\*2.* c:\*2.*

Last edited by zh159 on 2006-12-26 at 04:14 PM ]

作者: redtek     时间: 2006-12-27 07:05
(只判断当前盘是不是A盘)

(  如果是A盘,就进入 :DISK-A 执行相应代码)
(  如果非A盘,就进入 :DISK-N 执行相应代码)

(环境: MS-DOS 6.22 英文版)


@ECHO OFF

vol|find "drive A" >nul

if errorlevel 1 goto :DISK-N
if errorlevel 0 goto :DISK-A

:DISK-N
:: 反正判断当前盘不是A盘,做什么都行:)
:: 在里面执行不是A盘时所要执行的代码

Goto :End


:DISK-A
:: 当前盘是A盘,写相关代码
:: 设置变量 U 为 A ,表示当前盘是A盘(这个设置盘符变量的用不着,除判断多个盘时将来可以用)

SET U=A
ECHO DISK %U%

Goto :End



:: 其它代码段 ……


:End




其它需要的内容,往架子里添就行了~:)

Last edited by redtek on 2006-12-26 at 06:08 PM ]