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


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