仅根据标签参考/选择驱动器?(即不是驱动器号)

Cla*_*ols 7 windows batch-file

我正在试图提到一封信可能会改变的驱动器.我想通过它的标签来引用它(例如,批处理文件中的MyLabel(v :).它可以被V:\引用.我想通过MyLabel引用它.

(这个帖子发布在Expert Echange上一个月没有回答.让我们看看SO的回答速度有多快)

dbe*_*ham 7

以前的答案似乎过于复杂,和/或不是特别适合批处理文件.

这个简单的衬垫应该将所需的驱动器号放在变量myDrive中.显然,将"我的标签"更改为您的实际标签.

for /f %%D in ('wmic volume get DriveLetter^, Label ^| find "My Label"') do set myDrive=%%D
Run Code Online (Sandbox Code Playgroud)

如果从命令行运行(不在批处理文件中),则必须在两个位置将%% D更改为%D.

设置变量后,您可以使用引用驱动器%myDrive%.例如

dir %myDrive%\someFolder
Run Code Online (Sandbox Code Playgroud)


Rob*_*ker 1

此 bat 文件将为您提供驱动器标签中的驱动器号:

Option Explicit
Dim num, args, objWMIService, objItem, colItems

set args = WScript.Arguments
num = args.Count

if num <> 1 then
   WScript.Echo "Usage: CScript DriveFromLabel.vbs <label>"
   WScript.Quit 1
end if

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk")

For Each objItem in colItems
  If strcomp(objItem.VolumeName, args.Item(0), 1) = 0 Then
    Wscript.Echo objItem.Name
  End If
Next

WScript.Quit 0
Run Code Online (Sandbox Code Playgroud)

运行它作为:

 cscript /nologo DriveFromLabel.vbs label
Run Code Online (Sandbox Code Playgroud)