Batch file 如何使用标签访问usb驱动器并使用CMD导航

Batch file 如何使用标签访问usb驱动器并使用CMD导航,batch-file,cmd,wmic,wmi,Batch File,Cmd,Wmic,Wmi,例如,我想知道是否可以使用其标签访问usb驱动器 我可以使用PowerShell导航到驱动器,但我想知道如何在CMD中执行类似的操作 $usbPath = Get-WMIObject Win32_Volume | ? { $_.Label -eq 'volumelabel' } | select name ; cd $usbPath.name 您可以使用wmic logicaldisk get name,volumename查看所有连接的驱动器及其驱动器号,然后使用|查找指定的驱动器,其中是

例如,我想知道是否可以使用其标签访问usb驱动器 我可以使用PowerShell导航到驱动器,但我想知道如何在CMD中执行类似的操作

$usbPath = Get-WMIObject Win32_Volume | ? { $_.Label -eq 'volumelabel' } | select name ; cd $usbPath.name 

您可以使用
wmic logicaldisk get name,volumename
查看所有连接的驱动器及其驱动器号,然后使用
|
查找指定的驱动器,其中是驱动器的标签。所以你要做的就是

for /f %%i in ('"wmic logicaldisk get name, volumename | find "DRIVENAME" "') do (set Driveletter=%%i) 
cd %Driveletter%
加载最简单、速度更快的方法是使用
VOL
命令

您可以使用
MountVol
,将每个可能的驱动器号减少为仅装入驱动器号,而不是只检查每个可能的驱动器号:

发件人:


如果您仍然想使用,并且您有足够的权限使用
路径Win32_Volume
,(或其别名
Volume
),则

发件人:

从一个:

否则,您可以使用路径Win32\u LogicalDisk,(或其别名
LogicalDisk
)代替

发件人:

从一个:


WMI的命令行界面是
wmic
,因此从代码
wmic路径win32\u volume get/format:csv
wmic路径win32\u volume get/format:list
。但是,为了更准确地说明返回的内容,即“label='RECOVERY'”get/format:list我有一种感觉,即
%\uuuuuuuuuu AppDir\uuuuuuu%wbem\wmic.exe path win32\u volume
或使用其别名
%\uuuuuuuuu AppDir\wbem\wmic.exe volume
,标准用户需要提升。它不需要提升。它有一个缺陷,即在第一次运行时初始化系统文件。因此,一旦管理员运行了它,不相关的用户就可以使用它。不确定为什么至少在Win 2000之后还没有修复此问题。@Compo我忽略了别名,因为我正在演示如何将对象从Powershell转换为命令提示符。
For %G In (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)Do @Vol %G: 2>NUL|%__AppDir__%find.exe /I "volumelabel">NUL&&CD /D %G:
@For %%G In (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
) Do @Vol %%G: 2>NUL | %__AppDir__%find.exe /I "volumelabel" >NUL && CD /D %%G:
For /F "Delims=\ " %G In ('"%__AppDir__%mountvol.exe 2>NUL|%__AppDir__%find.exe ":\""') Do @Vol %%G 2>NUL|%__AppDir__%find.exe /I "volumelabel">NUL&&CD /D %%G
@For /F "Delims=\ " %%G In ('"%__AppDir__%mountvol.exe 2>NUL|%__AppDir__%find.exe ":\""'
) Do @Vol %%G 2>NUL | %__AppDir__%find.exe /I "volumelabel" >NUL && CD /D %%G
For /F "Skip=1Tokens=2" %G In ('%__AppDir__%wbem\WMIC.exe Volume Where "Label='volumelabel'" Get DriveLetter^,Name 2^>NUL')Do @CD /D %G
@For /F "Skip=1 Tokens=2" %G In (
    '%__AppDir__%wbem\WMIC.exe Volume Where "Label='volumelabel'" Get DriveLetter^,Name 2^>NUL'
) Do @CD /D %G
For /F "Skip=1Tokens=2" %G In ('%__AppDir__%wbem\WMIC.exe LogicalDisk Where "VolumeName='volumelabel'" Get DeviceID^,Name 2^>NUL')Do @CD /D %G
@For /F "Skip=1 Tokens=2" %%G In (
    '%__AppDir__%wbem\WMIC.exe LogicalDisk Where "VolumeName='volumelabel'" Get DeviceID^,Name 2^>NUL'
) Do @CD /D %%G