标题: [注册表类] 【已解决】批处理如何把另外文件夹里面的一个文件写入注册表? [打印本页]
作者: solan 时间: 2015-7-13 15:41 标题: 【已解决】批处理如何把另外文件夹里面的一个文件写入注册表?
本帖最后由 solan 于 2015-7-14 14:08 编辑
A文件夹有USB1和USB2两个子文件夹,其中USB1里面有一个1.ico图标文件,批处理在USB2里面。现在想用该批处理把1.ico及其详细路径注册到注册表的某个键之下,请教这个bat怎么写,请多提供一些方案来学习学习。
由于这几天正在学习namejm写的教材《批处理 For 语句从入门到精通》,想写写看,结果无果- @echo off
- @echo %cd%>1.txt
- for /f "delims=U" %%i in (1.txt) do echo %%i
- set ks=%%i
- reg add "某个注册表项" /ve /t REG_SZ /d "%ks%UBS1\1.ico,0" /f
- del 1.txt
- pause
复制代码
作者: solan 时间: 2015-7-13 15:49
上面的最好用delims=\
但是要删除最后一个元素不知道怎么写
作者: pcl_test 时间: 2015-7-13 16:49
本帖最后由 pcl_test 于 2015-7-13 16:53 编辑
- @echo off
- for /f "delims=" %%a in ('dir /s /b ..\USB1\1.ico') do set "f=%%a"
- reg add "某个注册表项" /ve /t REG_SZ /d "%f%,0" /f
- pause
复制代码
作者: kingshui 时间: 2015-7-13 17:00
- @echo off
- set p=%~dp0
- set p=%p:~0,-5%
- reg add "某个注册表项" /vb /t REG_SZ /d "%p%USB1\1.ico" /f
复制代码
作者: solan 时间: 2015-7-13 17:24
回复 3# pcl_test
谢谢老大,这个测试通过。那如果在USB1里面还有一个55.exe也要加入注册表,终不能再写个for语句吧?
作者: pcl_test 时间: 2015-7-13 17:35
本帖最后由 pcl_test 于 2015-7-13 17:36 编辑
回复 5# solan
需要吗- @echo off
- for /f "delims=" %%a in ('dir /s /b ..\USB1\1.ico') do set "路径=%%~dpa"
- echo;%路径%
- pause
复制代码
作者: solan 时间: 2015-7-13 17:38
回复 4# kingshui
今天又学了两个绝招,你的代码测试也通过,不过那个5要根据实际情况改一下就行了,谢谢
作者: solan 时间: 2015-7-13 17:55
两位老师的两种不同写法都非常好,非常巧妙,同时我觉得for语句太高深莫测了;而4楼的写法却是通俗易懂,容易举一反三。两位都让我受益匪浅啊
作者: solan 时间: 2015-7-13 19:39
我自己的代码经过修改,测试通过:- @echo off
- @echo %cd%>1.txt
- for /f "delims=U" %%i in (1.txt) do set “ks=%%i”
- reg add "某个注册表项" /ve /t REG_SZ /d "%ks%UBS1\1.ico,0" /f
- reg add "某个注册表项" /f /ve /t "REG_SZ" /d "\"%ks%USB1\55.exe\" -ug -use_file_dir \"%%1\""
- del 1.txt
- pause
复制代码
作者: solan 时间: 2015-7-13 20:30
回复 6# pcl_test
我看不懂,能不能像3楼那样写得完整些呢?麻烦您了
作者: /zhqsystem/zhq 时间: 2015-7-13 22:15
本帖最后由 /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 /?
作者: solan 时间: 2015-7-14 08:05
回复 11# /zhqsystem/zhq
谢谢,我现在知道了,原来pcl想让我看看提取出来的路径是啥样的,这样我会写了
作者: solan 时间: 2015-7-14 08:20
按照pcl的意思,我这样写:- @echo off
- for /f "delims=" %%a in ('dir /b /s ..\UBS1\1.ico') do set "f=%%~dpa"
- reg add "某个注册表项" /ve /t REG_SZ /d "%f%1.ico,0" /f
- reg add "某个注册表项" /f /ve /t "REG_SZ" /d "\"%f%55.exe\" -ug -use_file_dir \"%%1\""
- pause
复制代码
测试通过!
作者: solan 时间: 2015-7-14 08:27
不过有个疑问,for语句里经常出现dir /b /s 和dir /ad /b /s 还有dir /a-d /b
这些有什么区别,具体怎么用的?请教各位了。
作者: pcl_test 时间: 2015-7-14 11:53
回复 14# solan
dir /?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |