批处理文件在每个可移动设备中创建一个文件夹

批处理文件在每个可移动设备中创建一个文件夹

我需要一个批处理文件来在每个可移动设备中创建一个文件夹“测试”,然后我插入我的电脑(U盘等),我正在尝试这样的事情

set "extDrive="
for /f %%D in ('wmic volume get driveLetter^ where drivertype=2 ) do set extDrive=%%D
mkdir "%extDrive%\test"

有人能告诉我为什么这不起作用?

答案1

为什么这不起作用?

'wmic 卷获取驱动器号^ 其中 drivertype=2

上述命令中存在多处错误wmic

  • drivertype应该drivetype
  • 缺少尾随的'
  • 不需要 `^。
  • 应该where在 之前get
  • 并非所有磁盘卷都有驱动器号(但逻辑磁盘有)。

使用以下批处理文件:

@echo off
setlocal
for /f "skip=1 tokens=1,2" %%d in ('wmic logicaldisk get caption^, drivetype') do (
  if [%%e]==[2] echo mkdir %%d\test
  )
endlocal

笔记:

  • 测试批处理文件后,删除echo之前的内容。mkdir
  • 您可能还需要对驱动器类型 3 进行一些操作。
  • 我有一个类型 3 的可移动驱动器。在下面的输出中,C:是一个固定硬盘,D:是我的 CD ROM 驱动器,E:是一个可移动 USB 记忆棒,F:是一个可移动外部 USB 驱动器。

    F:\test>wmic logicaldisk get deviceid, drivetype
    DeviceID  DriveType
    C:        3
    D:        5
    E:        2
    F:        3
    

进一步阅读

答案2

要获取可移动驱动器的驱动器号,请使用:
wmic logicaldisk where drivetype=2 get deviceid
在我的情况下,这将返回:

C:\Windows\system32>wmic logicaldisk where drivetype=2 get deviceid
DeviceID
E:

我会把它放到一个 txt 文件中,然后循环遍历该文本文件...我不是一个大批量程序员,这种方式对我来说更容易调试。:)

相关内容