[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 如何用批处理实现可启动U盘启动后判断是A盘还是C盘?

我自己写了一个,不知道对不对,高手帮我看看.

@echo off
cd >disk.txt
\dos\find /i "C:\" disk.txt >nul
del disk.txt >nul
if errorlevel==1 \dos\menu.bat
\dos\tw /np /nm /nw >nul
cls
echo.
echo U盘被识别成C盘, 可能会出现不可预料的问题
echo 请选择其它方式启动电脑, 按任意键重新启动
pause>nul
\dos\restart



\DOS目录下有需要的FIND.EXE,TW.EXE和RESTART.COM,可以在启动的时候调用.
这个批处理我放在可启动U盘上用来判断U盘启动到DOS后是A:\还是C:\
如果不是C:\,那肯定就是A:\,运行\DOS\MENU.BAT
如果是C:\,调用TW.EXE开启中文界面提示信息,然后任意键重启.


另外说一下,这个批处理是autoexec.bat,放在U盘根目录下.
disk.txt文本的内容不外乎两种可能:
A:\
或者
C:\

  1. @ECHO OFF
  2. SET BOOTDRV=A
  3. PATH=A:\;A:\DOS
  4. IF EXIST C:\DOS\FIND.EXE GOTO BOOTC
  5. TW /NP /NM /NW
  6. MENU.BAT
  7. GOTO END
  8. :BOOTC
  9. PATH=C:\;C:\DOS
  10. RESTART
  11. :END
复制代码

TOP

楼上的方法是判断find.exe这个文件是在A:\DOS还是C:\DOS
如果是C:\DOS就说明U盘被识别成硬盘了.
这方法也不错.
谢谢楼上的了.

TOP

我现在写成这样了.

@echo off
if exist a:\dos\menu.bat \dos\menu.bat
if exist c:\dos\menu.bat goto errorc
goto end

:errorc
\dos\tw.exe /np /nm /nw >nul
cls
echo.
echo U盘被识别成C盘, 可能会出现不可预料的问题
echo 请选择其它方式启动电脑, 按任意键重新启动
pause>nul
\dos\restart.com

:end


如果被识别成A盘(大多数情况应该是识别成A盘),运行\DOS\MENU.BAT,这里我不用CALL,是为了运行完MENU.BAT后不返回执行下面的语句.
如果被识别成C盘,就跳转到ERRORC然后任意键重新启动.
如果不小心被识别成其它盘符了(那是踩了狗屎了),直接跳到END,反正不能让它执行MENU.BAT

另外path=a:\;a:\dos这一句我放到MENU.BAT里了,所以在AUTOEXEC.BAT里就去掉了.

TOP

返回列表