【问题标题】:Determine if specific Drive letter is available via batch file通过批处理文件确定特定的驱动器号是否可用
【发布时间】:2017-02-10 17:48:19
【问题描述】:

我们使用批处理文件将文件或文件夹备份到外部媒体(例如闪存驱动器、可重写 CD-ROM 或 DVR 磁盘)。我将从 USB 闪存驱动器开始。

我们在启动时设置了所需的驱动器号,因此它是环境的一部分:设置 ZDRIVE1=F

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

我们有一个名为 dskquery 的实用程序,它基本上可以做到这一点,但没有人可以找到源代码,因此我们可以重新编译以实现 32/64 位兼容性。

【问题讨论】:

  • wmic logicaldisk where "drivetype=2" get name /value 将为您提供连接的闪存驱动器的列表。将其更改为 where "drivetype=2 or drivetype=5" 以包括 CD-ROM 驱动器。不过,我不知道有任何简单的方法可以确定驱动器中是否安装了可写 CD。如果您想要更全面的答案,您应该编辑您的问题并发布您编写的代码,解释您遇到的问题。
  • @rojo 这不是万无一失的。我有一个可移动 USB 驱动器,它报告自己为驱动器类型 3。

标签: batch-file flash usb


【解决方案1】:
@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 :eof 替换为 goto yourlabel
U盘的驱动也可以是G:,H:等等,不需要F: ...

【讨论】:

  • 为什么不直接使用IF EXIST。当它成功时,我也会在它们中放一个 popd。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
相关资源
最近更新 更多