标题: [注册表类] 想给win98离线添加个驱动安装搜索路径,批处理写出来了,但用不了 [打印本页]
作者: 窄口牛 时间: 2023-9-17 06:47 标题: 想给win98离线添加个驱动安装搜索路径,批处理写出来了,但用不了
- @echo off
- Setlocal enabledelayedexpansion
-
-
- for /f "delims=\ tokens=1,2,3,4" %%a in ('dir /s N:\DrvPath\*.inf /b') do (
- set s=!s!;%%a\\%%b\\%%c)
- echo,regedit4>>drv.reg
- echo,>>drv.reg
- echo,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]>>drv.reg
- echo,>>drv.reg
- echo,"DevicePath"="%%SystemRoot%%\inf!s!">>drv.reg
复制代码
win98的DOS没有变量延迟,所以无法在98系统使用;在别的系统下(如xp)可以输出出来reg,但是不合法,再用edit重新保存,也不合格,无法导入。
有人有办法解决吗?
作者: buyiyang 时间: 2023-9-17 10:01
不能用变量延迟可以试试这样- call set s=%%s%%;%%a\%%b\%%c
复制代码
还有%SystemRoot%是REG_EXPAND_SZ类型的数据,在注册表文件中要是hexadecimal(2)类型的,
应该先把%%SystemRoot%%\inf%s%转十六进制,"DevicePath"=hex(2):
作者: Batcher 时间: 2023-9-17 10:08
回复 1# 窄口牛
不需要变量延迟扩展.bat- @echo off
- (for /f "tokens=1,2,3,4 delims=\" %%a in ('dir /b /s /a-d "N:\DrvPath\*.inf"') do (
- set /p =;%%a\\%%b\\%%c<nul
- ))>"%temp%\1.txt"
- set /p s=<"%temp%\1.txt"
- >drv.reg echo,regedit4
- >>drv.reg echo,
- >>drv.reg echo,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
- >>drv.reg echo,
- >>drv.reg echo,"DevicePath"="%%SystemRoot%%\inf%s%"
复制代码
作者: 窄口牛 时间: 2023-9-17 11:24
回复 2# buyiyang
regedit5才是,4不是。
作者: 窄口牛 时间: 2023-9-17 11:26
回复 3# Batcher
稍候试试看再来汇报。
作者: terse 时间: 2023-9-18 11:46
DOS下for /f 不起作用吧
作者: 窄口牛 时间: 2023-9-18 18:11
批处理没问题,但是98的msdos下不行,可能就是/f不行?或者是括号起来>到文本不行?
作者: Batcher 时间: 2023-9-18 18:23
回复 7# 窄口牛
for /f 和 set /p 在CMD下面可以,但是DOS系统里面没有这种语法。
作者: 窄口牛 时间: 2023-9-18 18:47
嗯,只能先在别的系统里收集,再在win98环境下建注册表。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |