即时通讯编写批处理脚本以在闪存驱动器上运行。我需要验证代码中闪存驱动器的卷序列号,因此没有人应该能够从不同的位置运行它。检查批处理文件中的批量序列号
有谁知道如何验证批处理文件中的序列号?
例子:
IF %VOL%==ABCD GOTO A ELSE EXIT
即时通讯编写批处理脚本以在闪存驱动器上运行。我需要验证代码中闪存驱动器的卷序列号,因此没有人应该能够从不同的位置运行它。检查批处理文件中的批量序列号
有谁知道如何验证批处理文件中的序列号?
例子:
IF %VOL%==ABCD GOTO A ELSE EXIT
虽然有几种不同的方法来达到同样的事情,原来的DOS/Windows命令意来管理卷和序列号是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!
)
目前我使用MS dos 6.22,不幸的是这些解决方案都无法帮助我达到我的要求。请建议我找出正确语法的另一种方式,以便在MS Dos 6.22 – yrk
@Aacini,+1:nice上正确执行。忘记'vol'。 –
你或许可以使用WMIC和做类似:
wmic logicaldisk where drivetype=3 get volumeserialnumber
参见参数类型中提到的链接。
编辑:
@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"
)
鉴于批处理文件是纯文本,什么用来验证它有?用户可以简单地改变音量信息。 –
我打算将bat文件转换成exe文件 – yrk
我只是想知道_anyone_怎么能穿透这个防御堡垒。 –