Cute!
Ok, since this is now the #1 Google result for "check active partition batch" I thought I'd throw in some other stuff I found to be neat. You may or may not be able to use it.
http://social.technet.microsoft.com/For ... 0975c49d4/Oberwald wrote this and I modified it slightly, changing "diskpart.scr" to "dpscript.txt". The batch file assumes that you have only one disk:
@echo off
call :CreateScript
for /F "tokens=1-4" %%a in ('diskpart ^< dpscript.txt ^| find "*"') do echo %%b %%c Drive %%d:
goto :eof
:CreateScript
for /F %%a in ('mountvol.exe ^| find /c ":\"') do set PCount=%%a
set PNumber=1
echo > dpscript.txt select disk 0
:Loop
echo >> dpscript.txt select partition %PNumber%
echo >> dpscript.txt detail partition
set /a PNumber=%PNumber%+1
if %PNumber% LEQ %PCount% goto Loop
echo >> dpscript.txt exit
And this is a crazy work of art by TheOutcaste that I haven't really delved into:
http://forums.techguy.org/software-deve ... stion.html@Echo %dbg%Off
::
:: Find External drive and set it active
:: Lists Disk Information using Diskpart
::
SetLocal EnableDelayedExpansion
:: Type the frst 11 characters of the label of the drive here.
Set _FindLabel=External 50
Call :_InitVars "%_FindLabel%"
"%SystemRoot%\system32\FSUTIL.exe">Nul 2>&1||Goto _NotAdmin
Echo.
Echo.Please wait, gathering info on the installed drives
Echo.
>"%_Dscr1%" Echo.List disk
For /F "Tokens=2" %%I In ('Diskpart /S "%_Dscr1%"^|Findstr /I /R /C:"Disk [0-9]"') Do (
(Echo.Select Disk %%I
Echo.Detail Disk)>>"%_OFile1%"
)
For /F "Tokens=1,2,3*" %%I In ('Diskpart /S "%_OFile1%"^|Findstr /I /R /C:"Disk [0-9]" /C:"Volume [0-9]"') Do (
If /I %%I==Disk (
Set _Tmp=%%J:
) Else (
Set _Label=%%L
Set _Label=!_Label:~,11!
>>"%_OFile2%" Echo.!_Tmp!%%J:!_Label!
))
If Exist "%_OFile1%" Del "%_OFile1%"
For /F "Usebackq Tokens=1-3 Delims=:" %%I In ("%_OFile2%") Do (
Set _Label=%%K
Set _Label=!_Label:~,11!
If "!_Label!"=="%_FindLabel%" (Set _Disk=%%I) & (Set _Label=%%K) & Goto _FDisk
>>"%_OFile1%" Echo.Volume %%J on Disk %%I has the Label %%K
)
Echo.
Echo.There is no drive connected that has the label of "%_FindLabel%"
Echo.These are the currently connected volumes:
Type "%_OFile1%"
:_Exit
Echo.
Pause
Goto _Cleanup
:_FDisk
(Echo.Select disk %_Disk%
Echo.Select Partition 1
Echo.Active)>"%_Dscr1%"
Diskpart /S "%_Dscr1%"
:_Cleanup
For %%I In ("%_Dscr1%" "%_OFile1%" "%_OFile2%") Do Del %%I>Nul 2>&1
Goto :EOF
::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Subroutines
::::::::::::::::::::::::::::::::::::::::::::::::::::::
:_NotAdmin
Ver|Findstr /I /C:"Version 5">Nul
If %Errorlevel%==0 (Set _Tmp1=5) & (Set _Tmp=a Computer Administrator account)
Ver|Findstr /I /C:"Version 6">Nul
If %Errorlevel%==0 (Set _Tmp1=6) & (Set _Tmp=an Elevated Command Prompt)
Echo.
Echo.This program must be run from %_Tmp%.
If %_Tmp1%==6 Echo.Please Right click the file, then click Run as Administrator
Echo.Exiting program
Goto _Exit
:_InitVars
For /F "Tokens=1 Delims==" %%I In ('Set _ 2^>Nul') Do Set %%I=
Set _Dscr1=%temp%\dpscr1.txt
Set _OFile1=%temp%\_OFile1.txt
Set _OFile2=%temp%\_OFile2.txt
Set _FindLabel=%~1
Set _FindLabel=%_FindLabel:~,11%
Call :_Cleanup
For examples, here's what I have in my system now:
DISKPART> list vol
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 F DVD-ROM 0 B No Media
Volume 1 SYSTEM NTFS Partition 380 MB Healthy System
Volume 2 C OS NTFS Partition 229 GB Healthy Boot
Volume 3 D HP_RECOVERY NTFS Partition 8 GB Healthy
Volume 4 HP_TOOLS FAT32 Partition 380 MB Healthy Hidden
Volume 5 E Storage NTFS Partition 465 GB Healthy
And the output of the first batch:
C:\temp>test
Volume 1 Drive SYSTEM:
Volume 2 Drive C:
Volume 3 Drive D:
Volume 4 Drive HP_TOOLS:
And the output of the second batch:
C:\temp>test2
Please wait, gathering info on the installed drives
There is no drive connected that has the label of "External 50"
These are the currently connected volumes:
Volume 1 on Disk 0 has the Label NTFS Part
Volume 2 on Disk 0 has the Label OS
Volume 3 on Disk 0 has the Label HP_RECOVERY
Volume 4 on Disk 0 has the Label FAT32 Part
Volume 5 on Disk 1 has the Label Storage
Unfortunately for me it didn't work, but I have high hopes it could be tweaked to work. I'm on Win7 Pro x64.
There is no drive connected that has the label of
"OS"These are the currently connected volumes:
Volume 1 on Disk 0 has the Label NTFS Part
Volume 2 on Disk 0 has the Label
OS