本帖最后由 idwma 于 2021-8-8 17:54 编辑
回复 36# 5i365
你看11行就是定位硬盘一样的
不太清楚这样是不是顺序不会变可以试试 | @echo off | | if exist dsk.txt del dsk.txt | | chcp 437 | | echo list vol|diskpart|findstr /i "volume.*no" &&set f=1 | | if not defined f start mshta vbscript:msgbox("没找到卷标为no的分区",0,"%提醒%")(window.close)&&exit | | for /f "tokens=2,3 delims= " %%a in ('echo list vol^|diskpart^|findstr /i "volume.*no"') do ( | | if exist %%b:\windows\system32 ( | | for /f "tokens=2 delims=* " %%c in ('^(echo sel vol %%a ^&echo list disk^)^|diskpart^|findstr "*"') do set disk=%%c &BOOTICE /DEVICE=%%c /mbr /backup /sectors=1 /quiet /file=MBR_Bak | | (echo select volume %%a | | echo delete volume)|diskpart | | ) | | ) | | | | for /f "tokens=2 delims= " %%c in ('^(echo select disk %disk% ^&echo list part^)^|diskpart^|findstr /i "System Reserved Recovery"') do ( | | if not "%%c"=="" ( | | (echo sel disk %disk% | | echo sel part %%c | | echo del part override)>>dsk.txt | | ) | | ) | | | | for /f "tokens=2 delims= " %%a in ('^(echo select disk %disk% ^&echo detail disk^)^|diskpart^|findstr /i "volume.*no"') do ( | | if not "%%a"=="" ( | | (echo select volume %%a | | echo delete volume)>>dsk.txt | | ) | | ) | | echo;exit>>dsk.txt | | if exist dsk.txt diskpart /s dsk.txt | | del dsk.txt | | for /f "tokens=3 delims= " %%c in ('echo list vol^|diskpart^|findstr /i "volume.*data"') do set data_pf=%%c | | set no_yph=%disk% | | pauseCOPY |
|