[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 想给win98离线添加个驱动安装搜索路径,批处理写出来了,但用不了

  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. for /f "delims=\ tokens=1,2,3,4" %%a in ('dir /s N:\DrvPath\*.inf /b') do (
  4. set s=!s!;%%a\\%%b\\%%c)
  5. echo,regedit4>>drv.reg
  6. echo,>>drv.reg
  7. echo,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]>>drv.reg
  8. echo,>>drv.reg
  9. echo,"DevicePath"="%%SystemRoot%%\inf!s!">>drv.reg
复制代码
win98的DOS没有变量延迟,所以无法在98系统使用;在别的系统下(如xp)可以输出出来reg,但是不合法,再用edit重新保存,也不合格,无法导入。
有人有办法解决吗?

不能用变量延迟可以试试这样
  1. call set s=%%s%%;%%a\%%b\%%c
复制代码
还有%SystemRoot%是REG_EXPAND_SZ类型的数据,在注册表文件中要是hexadecimal(2)类型的,
应该先把%%SystemRoot%%\inf%s%转十六进制,"DevicePath"=hex(2):

TOP

回复 1# 窄口牛


不需要变量延迟扩展.bat
  1. @echo off
  2. (for /f "tokens=1,2,3,4 delims=\" %%a in ('dir /b /s /a-d "N:\DrvPath\*.inf"') do (
  3.     set /p =;%%a\\%%b\\%%c<nul
  4. ))>"%temp%\1.txt"
  5. set /p s=<"%temp%\1.txt"
  6. >drv.reg echo,regedit4
  7. >>drv.reg echo,
  8. >>drv.reg echo,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
  9. >>drv.reg echo,
  10. >>drv.reg echo,"DevicePath"="%%SystemRoot%%\inf%s%"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# buyiyang


    regedit5才是,4不是。

TOP

回复 3# Batcher


    稍候试试看再来汇报。

TOP

DOS下for /f 不起作用吧

TOP

批处理没问题,但是98的msdos下不行,可能就是/f不行?或者是括号起来>到文本不行?

TOP

回复 7# 窄口牛


    for /f 和 set /p 在CMD下面可以,但是DOS系统里面没有这种语法。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

嗯,只能先在别的系统里收集,再在win98环境下建注册表。

TOP

返回列表