找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33486|回复: 14

[注册表类] 【已解决】批处理如何把另外文件夹里面的一个文件写入注册表?

[复制链接]
发表于 2015-7-13 15:41:26 | 显示全部楼层 |阅读模式
本帖最后由 solan 于 2015-7-14 14:08 编辑

A文件夹有USB1和USB2两个子文件夹,其中USB1里面有一个1.ico图标文件,批处理在USB2里面。现在想用该批处理把1.ico及其详细路径注册到注册表的某个键之下,请教这个bat怎么写,请多提供一些方案来学习学习。
    由于这几天正在学习namejm写的教材《批处理 For 语句从入门到精通》,想写写看,结果无果
  1. @echo off
  2. @echo %cd%>1.txt
  3. for /f "delims=U" %%i in (1.txt) do echo %%i
  4. set ks=%%i
  5. reg add "某个注册表项" /ve /t REG_SZ /d "%ks%UBS1\1.ico,0" /f
  6. del 1.txt
  7. pause
复制代码
 楼主| 发表于 2015-7-13 15:49:56 | 显示全部楼层
上面的最好用delims=\  
但是要删除最后一个元素不知道怎么写
发表于 2015-7-13 16:49:27 | 显示全部楼层
本帖最后由 pcl_test 于 2015-7-13 16:53 编辑
  1. @echo off
  2. for /f "delims=" %%a in ('dir /s /b ..\USB1\1.ico') do set "f=%%a"
  3. reg add "某个注册表项" /ve /t REG_SZ /d "%f%,0" /f
  4. pause
复制代码
发表于 2015-7-13 17:00:40 | 显示全部楼层
  1. @echo off
  2. set p=%~dp0
  3. set p=%p:~0,-5%
  4. reg add "某个注册表项" /vb /t REG_SZ /d "%p%USB1\1.ico" /f
复制代码
 楼主| 发表于 2015-7-13 17:24:45 | 显示全部楼层
回复 3# pcl_test
谢谢老大,这个测试通过。那如果在USB1里面还有一个55.exe也要加入注册表,终不能再写个for语句吧?
发表于 2015-7-13 17:35:45 | 显示全部楼层
本帖最后由 pcl_test 于 2015-7-13 17:36 编辑

回复 5# solan
需要吗
  1. @echo off
  2. for /f "delims=" %%a in ('dir /s /b ..\USB1\1.ico') do set "路径=%%~dpa"
  3. echo;%路径%
  4. pause
复制代码
 楼主| 发表于 2015-7-13 17:38:27 | 显示全部楼层
回复 4# kingshui

今天又学了两个绝招,你的代码测试也通过,不过那个5要根据实际情况改一下就行了,谢谢
 楼主| 发表于 2015-7-13 17:55:49 | 显示全部楼层
两位老师的两种不同写法都非常好,非常巧妙,同时我觉得for语句太高深莫测了;而4楼的写法却是通俗易懂,容易举一反三。两位都让我受益匪浅啊
 楼主| 发表于 2015-7-13 19:39:26 | 显示全部楼层
我自己的代码经过修改,测试通过:
  1. @echo off
  2. @echo %cd%>1.txt
  3. for /f "delims=U" %%i in (1.txt) do set “ks=%%i”
  4. reg add "某个注册表项" /ve /t REG_SZ /d "%ks%UBS1\1.ico,0" /f
  5. reg add "某个注册表项" /f /ve /t "REG_SZ" /d ""%ks%USB1\55.exe" -ug -use_file_dir "%%1""
  6. del 1.txt
  7. pause
复制代码
 楼主| 发表于 2015-7-13 20:30:20 | 显示全部楼层
回复 6# pcl_test

我看不懂,能不能像3楼那样写得完整些呢?麻烦您了
发表于 2015-7-13 22:15:46 | 显示全部楼层
本帖最后由 /zhqsystem/zhq 于 2015-7-13 23:01 编辑

回复 10# solan


    pcl的意思是用for提取路径在用reg add添加此变量到注册表的值
添加键值
reg add "hkcu\........或HKLM等\主项名称" /v "键值名称(用于辨认和区分)" /t 有效值区分(reg_sz等) /d "\"路径""(如果是非字符串值别这么写) /f
添加空白值
reg add "hkcu\........或HKLM等\主项名称" /ve /t 有效值区分(reg_sz等) /d "\"路径""(如果是非字符串值别这么写) /f

不加入/t参数默认为reg_sz参数
详情查阅reg /?
 楼主| 发表于 2015-7-14 08:05:23 | 显示全部楼层
回复 11# /zhqsystem/zhq
谢谢,我现在知道了,原来pcl想让我看看提取出来的路径是啥样的,这样我会写了
 楼主| 发表于 2015-7-14 08:20:40 | 显示全部楼层
按照pcl的意思,我这样写:
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /s ..\UBS1\1.ico') do set "f=%%~dpa"
  3. reg add "某个注册表项" /ve /t REG_SZ /d "%f%1.ico,0" /f
  4. reg add "某个注册表项" /f /ve /t "REG_SZ" /d ""%f%55.exe" -ug -use_file_dir "%%1""
  5. pause
复制代码
测试通过!
 楼主| 发表于 2015-7-14 08:27:01 | 显示全部楼层
不过有个疑问,for语句里经常出现dir /b /s   和dir /ad /b /s   还有dir /a-d /b
这些有什么区别,具体怎么用的?请教各位了。
发表于 2015-7-14 11:53:09 | 显示全部楼层
回复 14# solan

dir /?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 22:45 , Processed in 0.023272 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表