REM assumes English
set OSPART=E
set PARTNUM=
for /f "delims=*" %%B in ('^(echo sel vol %OSPART%^&echo list part^)^|diskpart^|FIND "*"') do set LINE=%%B
set PARTNUM=%LINE:~11,1%
echo PARTNUM=%PARTNUM%
==========
REM Get drive letter from partition number (assumes English!)
REM use with delayedexpansion
set PART=2
set DISK=0
set PARTNO=
FOR /F "delims=*" %%B IN ('^( echo SEL DISK %DISK%^&echo SEL PAR %PART%^&echo DET PAR^)^|diskpart^|FIND "*"') DO (
SET Line=%%B
IF NOT "!Line:~14,1!"==" " SET PARTNO=!Line:~14,1!
)Â