我想创建一个脚本,通过仅指定其卷标来自动在 Windows 中安装驱动器。想法是提供标签并返回卷号,然后通过脚本将其用于 diskpart。
使用 ChatGPT,我能够取得一些进展,但不能说我能够完全理解,因为我对批量编程没有太多经验。也可能答案可能不是最好的。
ChatGPT 建议:
@echo off
for /f "tokens=1" %%i in ('wmic logicaldisk where "DriveType=3" get VolumeName /value') do (
set disklabel=%%i
echo Found disk label: %disklabel%
diskpart /s script.txt
)
脚本(单独的文件)是
select volume <disk label>
assign letter=<drive letter>
假设“超级驱动器”是驱动器的标签,我如何通过双击 bat 文件使其工作?顺便说一句,我知道 diskpart 需要一个单独的脚本来自动化它(script.txt),但我不知道如何编写
<disk label>
<disk letter>
谢谢。
答案1
@echo off && Setlocal EnableDelayedExpansion
for /f tokens^=4delims^=^>^< %%i in =;('
wmic.exe logicaldisk where "DriveType=3" get VolumeName^,Caption /format:xml ^| find "/VALUE"
')do if "!_Caption!" == "" (set "_Caption=%%~i")else set "_DiskLabel=%%~i" && echo\ Found: !_DiskLabel!
if /i "Super Drive" == "!_DiskLabel!" >"%temp%\%~n0.txt" =;(
echo\ Select volume !_DiskLabel!
echo\ Assign letter=!_Caption!
);=
findstr "S A" <"%temp%\%~n0.txt" && 2>nul =;(
diskpart.exe /s "%temp%\%~n0.txt"
timeout 3 | del "%temp%\%~n0.txt"
);=
endlocal