2017-02-10 25 views
0

我们使用批处理文件将文件或文件夹备份到外部介质(如闪存驱动器或可擦写CD-ROM或DVR磁盘)。我将从USB闪存驱动器开始。确定是否通过批处理文件提供特定驱动器盘符

我们建立在我们启动所需的驱动器盘符所以它的环境的一部分:设置ZDRIVE1 = F

所以,希望能够检查%ZDRIVE1%:可用,如果没有,提示用户插入闪存驱动器,重新测试,它们移动到我们开始将文件复制到指定闪存驱动器的部分。

我们有一个名为dskquery的工具,基本上这样做了,但没有人能找到源码,所以我们可以重新编译为32/64位兼容性。

+0

'WMIC逻辑磁盘其中“DRIVETYPE = 2 “获取名称/值”将为您提供连接的闪存驱动器列表。将其更改为“where”drivetype = 2或drivetype = 5“'以包含CD-ROM驱动器。我不知道有什么简单的方法来确定驱动器中是否安装了可写的CD。如果你想得到更彻底的答案,你应该编辑你的问题并发布你写的代码,解释你遇到的问题。 – rojo

+0

@rojo这并非万无一失。我有一个可移动的USB驱动器,它自己报告为drivetype 3. – DavidPostill

回答

0
@echo off 
Set "ZDRIVE1=F" 
:test 
pushd %ZDRIVE1%: 
if "%errorlevel%" == "0" (
echo the drive is aviable. 
pause 
goto :eof 
) else (
echo please insert the flash drive. 
pause 
) 
goto test 

第8行跟goto yourlabel
还一个USB闪存驱动器的驱动器代替goto :eof可以G:H:等,没有必要F: ...

+0

为什么不直接使用'IF EXIST'。当它成功的时候,我也会给他们一个弹出。 – Squashman

相关问题