gpt4 book ai didi

windows - 将硬盘盘符转换为相应的设备 ID(反之亦然)

转载 作者:可可西里 更新时间:2023-11-01 09:34:01 24 4
gpt4 key购买 nike

我需要识别硬盘驱动器设备制造商 ID 的驱动器盘符(或者反之亦然,我也可以这样做)。

检索制造商 ID 的命令:

WMIC.exe DiskDrive Get /Format:List

示例输出(拆分并使用格式化的 HTML 实体):

PNPDeviceID=DISK&VEN_WDC_WD10&PROD_02FAEX-00Z3A0

获取盘符的命令:

WMIC.exe Volume Get /Format:List

示例输出:

DriveLetter=C:

问题是我无法从两个输出中找到任何有用的属性来进行查询,我的意思是我不知道如何处理制造商 ID 来搜索每个 ID 的驱动器号,我看不到任何方法来识别 ID 的驱动器号。

因此,在我获得 DeviceID DISK&VEN_WDC_WD10&PROD_02FAEX-00Z3A0 的那一刻,我需要将其转换为等效的驱动器号,即 C:,仅此而已。

我尝试过使用 WMIC 工具,因为我不知道如何使用 Windows 中提供的 native 命令行工具关联此信息,但对于我完成此任务访问来说,这并不是完全必要的到 WMI 类,我可以接受在 Windows 中使用其他预装工具的解决方案(也许是 BCDedit?),或者使用 VBScript 语言的解决方案应该是也接受了,但对于环境情况,我不能用任何其他语言(包括 native PowerShell)完成此任务,也不能使用 Microsoft 提供的 Devcon 实用程序等第 3 方工具.

我需要它的原因是完成这个脚本,该脚本应该检索并排除 DriveLetter C: 的 DeviceID:

@Echo OFF & REM Mode con cols=150 lines=50

:: Exclude this drive during the process.
Set "ExcludedDrive=C:"

:: This variable should be set later,
:: Stores the device ID of the drive letter excluded above.
Set "ExcludedID="

REM ************
REM PSEUDO CODE:
REM ************
REM
REM To get Volume Information:
REM WMIC.exe Volume Get /Format:List
REM WMIC.exe Volume Where 'DriveLetter="C:"' Get /Format:CSV
REM
REM To get DiskDrive Information:
REM WMIC.exe DiskDrive Get /Format:List
REM
REM :: Identify the drive letter of each DeviceID to add exclusions
REM For Each %%DriveLetter in %ExcludedDrive% do (
REM
REM :: Retrieve an WMIC Result
REM Set WMIC_Query_Result=¿?
REM Set WMIC_Query_Result_DriveLetter=¿?
REM Set WMIC_Query_Result_DeviceID=¿?
REM
REM If %WMIC_Query_Result_DriveLetter% EQU %%DriveLetter (
REM Set "ExcludedID=%WMIC_Query_Result_DeviceID%"
REM )
REM )
REM
REM ******************
REM END OF PSEUDO CODE
REM ******************

For /F "Tokens=* Delims=" %%a In (
'REG.exe Query "HKLM\SYSTEM\CurrentControlSet\Enum\SCSI" ^| Find /I "Disk&"'
) Do (
Echo "%%a" | Find /I "%ExcludedID%" || (
For /F "Tokens=* Delims=" %%b In ('REG.exe Query "%%~a"') Do (
Reg.exe ADD "%%b\Device Parameters\Disk" /V "UserWriteCacheSetting" /T "REG_DWORD" /D "0x00000000" /F 1>NUL
)
)
)

Pause&Exit

最佳答案

diskpart /s diskpart.script

脚本中有两行

select disk 0
detail disk

帮助?

关于windows - 将硬盘盘符转换为相应的设备 ID(反之亦然),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22728918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com