我正在尝试通过NSIS(在NSIS脚本中安装驱动程序)来安装.inf文件。
安装本身可以顺利进行,但是Windows会使用内部发布的名称(递增的编号oemxxx.inf)安装驱动程序。
我如何获取pnputil.exe以给我发布的名称作为返回值(以供以后使用)?
为了在nsis中获得已发布的驱动程序名称,我所做的就是这种解决方法:
pnputil /e > driverlist_before.txt
pnputil /i /a mydriver.inf
pnputil /e > driverlist_after.txt
nsExec
内容 GetPublishedDrivername.cmd
@echo off
:: look at differences between files and just keep the line with the oem info
fc mydriverlist_before.txt mydriverlist_after.txt | findstr /C:"oem" > diff.txt
:: cut result and keep second part " oem##.inf"
for /f "tokens1,2 delims=:" %%a in (diff.txt) do (
if "%%a"=="Published name " set info=%%b
)
:: get rid of leading spaces "oem##.inf"
for /f "tokens=* delims= " %%a in ("%info%") do set info=%%a
:: split "oem##.inf" and keep first part "oem##"
for /f "tokens=1,2 delims=." %%a in ("%info%") do set info=%%a
:: get of the oem part "##"
set info=%info:oem=%
:: convert string into int value
set /a info=%info%
del diff.txt
:: return number as result
exit /b %info%
这个脚本肯定可以优化,欢迎您的输入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句