
볼륨 레이블만 지정하여 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>
"Super Drive"가 드라이브의 레이블이라고 가정하면 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