Question

Im writing a batch script to run on a flash drive. I need to validate the volume serial number of flash drive inside the code, therefore nobody should be able to run it from a different location.

Does anyone know how to validate serial number inside a batch file?

Example:

IF %VOL%==ABCD GOTO A ELSE EXIT
Was it helpful?

Solution

Although there are several different ways to achieve the same thing, the original DOS/Windows command intended to manage volumes and serial numbers is VOL:

@echo off
for /F "skip=1 tokens=5" %%a in ('vol %~D0') do set Serial=%%a
if %Serial% equ ABCD-EF01 do (
    echo Valid serial number!
)

OTHER TIPS

You can probably use WMIC and do something like:

wmic logicaldisk where drivetype=3 get volumeserialnumber

See parameter types in the link mentioned.

Edit:

@echo off
for /F "skip=1 delims=" %%j in ("wmic logicaldisk where deviceid = 'C:' get volumeserialnumber") do (
  set SERIAL=%%j
  goto :DONE
)
:DONE
echo  SERIAL=%SERIAL%

if "%SERIAL%"=="BLAH" (
   echo "Bluh"
)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top