本帖最后由 nnszuo 于 2014-11-10 13:32 编辑
是目录路径"()"等需要转义的特殊符号就会替换失败,用这个吧,这个可以兼容"("和")"的,其他的就不写了太复杂了,用这个生成的批处理,可以根据目录路径修改注册表文件并导入注册表.
这里面有包含替换?的
注意"::reg"后面不要有内容和空行
所在目录路径不要有()外其他需要转义的特殊符号- @echo off
- for /f "delims=:" %%i in ('findstr /n "^::bat$" "%~f0"') do (
- more +%%i "%~f0" >导入注册表.bat
- type 4.reg>>导入注册表.bat
- )
- if exist 66.bat echo 成功为4.reg生成注册表导入文件"注册表.bat"
- echo 按任意键退出
- pause>nul
- exit
-
- ::bat
- @echo off
- setlocal enabledelayedexpansion
- set m=kkk%RANDOM%.reg
- set n=kkk%RANDOM%.reg
- for /f "delims=*" %%z in ("%cd%") do (
- set z=%%z
- set z=!z:^(=:k1!
- set z=!z:^)=:k2!
- set z=!z:\=\\!
-
- )
- for /f "delims=:" %%i in ('findstr /n "^::reg$" "%~f0"') do (
- more +%%i "%~f0" >%m%
- )
- for /f "delims=*" %%a in ('type %m%') do (
- set k=%%a
- for /f "delims=*" %%y in ("!z!") do (
- set k=!k:C^:\\巨人网络\\艾尔之光=%%y!
- set k=!k::k1=^(!
- set k=!k:?=!
- set k=!k::k2=^)!
- (echo !k!)>>%n%
- )
- )
- move /y %n% %m%
- regedit /s %m%&&(echo 注册表导入成功&del %m%)
- pause>nul
- exit
-
- ::reg
复制代码
|