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


1

我需要一个批处理文件在每个可移动设备中创建一个文件夹“test”,而不是我插入我的电脑(pendrives等)我正在尝试这样的事情

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

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

Answers:


1

为什么这不起作用?

'wmic volume get driveLetter ^其中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

笔记:

  • echomkdir测试批处理文件时删除之前的内容。
  • 您可能还需要对驱动器类型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
    

进一步阅读


0

获取可移动驱动器的驱动器号使用:
wmic logicaldisk其中drivetype = 2获取deviceid
在我的情况下返回:

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

我会把它放到一个txt文件,然后循环通过该文本文件...我不是一个大批处理程序员,这种方式更容易调试我。:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.