本帖最后由 InterFrog 于 2022-7-21 22:09 编辑
如果解决了问题,请务必好评,好评是一个初学者学下去的动力,嘿嘿
此代码解决的是你最开始的需求,同时兼顾了你最新的需求(新生成的不需要这一整行 “Windows Registry Editor Version 5.00”),代码如下(此为纯净版代码,带注释版代码附在最后):- @echo off
- setlocal enabledelayedexpansion
- type 0.txt > 1.txt
- echo. >> 1.txt
- for /f "tokens=*" %%i in (2.txt) do (
- echo. >> 1.txt
- for /f "skip=2 tokens=*" %%j in (0.txt) do (
- set a=%%j
- set a=!a:.png=%%i!
- echo !a! >> 1.txt
- )
- )
- start 1.txt
- pause
复制代码 对了,2.txt文件的内容要求要这样每行只写一个后缀:
.bmp
.gif
.jpeg
.jpg
0.txt的内容就是你最先的那样的:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\OpenWithList]
"a"="iexplore.exe"
"MRUList"="cebdfagij"
"b"="小Q画笔.exe"
"d"="ACDSeeQV.exe"
"e"="chrome.exe"
"f"="mspaint.exe"
"g"="搜索.exe"
"h"="Honeyview32.exe"
"i"="复制到剪切板.exe"
"j"="DllHost.exe"
"c"="Imagine64.exe"
楼主你好,那天晚上在这里注册账号之后,就随便看了看,然后就看到你的贴子,说要试试帮你解决的,后面因为工作忙忘记回复你了,所以我还是按照你最开始的要求做的,同时也兼顾了你最新的要求。
带详细注释版代码:- @REM 关闭回显
- @echo off
- REM 变量延迟坏境,开启后局部变量的使用要用!xxx!而不是%xxx%
- setlocal enabledelayedexpansion
- REM 先将0.txt的内容覆盖到1.txt
- type 0.txt > 1.txt
- REM 将一行空行追加到1.txt中
- echo. >> 1.txt
- REM 逐行遍历2.txt
- for /f "tokens=*" %%i in (2.txt) do (
- REM 将一行空行追加到1.txt中
- echo. >> 1.txt
- REM 忽略首2行(忽略的2行是:第1行是"Windows Registry Editor Version 5.00",
- REM 第2行是"空白行"),然后逐行遍历0.txt
- for /f "skip=2 tokens=*" %%j in (0.txt) do (
- REM 将每行内容赋值给a
- set a=%%j
- REM 用%%i替换a中的".png"(a中没有就不会进行替换),然后赋值给a
- set a=!a:.png=%%i!
- REM 将最新的a变量追加到1.txt,注意局部变量a的使用要用!a!而不是%a%
- echo !a! >> 1.txt
- )
- )
- REM 打开生成的1.txt
- start 1.txt
- REM 暂停
- pause
复制代码
|