0

问题1)我有两个文件

文件 1 有

abc=123
acd=234
helloa=455
hellob=768
adb=234

文件2有

abc=123
acd=564
helloa=2343
hellob=123
adb=685

我知道字符串helloa,但我不知道它的右侧是什么,我想要做的是,将file1hellob右侧的值更改为 file2 的值。helloahellob

我试过的

set a=0
for /f "delims=" %%i in ('^<file1 findstr /n "^"') do (
set "line=%%i"
setlocal enabledelayedexpansion
set "line=!line:*:=!"
if not "!line!"=="!line:helloa=!" set a=!line!
endlocal
)

然后替换file1中的行,但这些行永远不会被复制到a,a仍然是0

问题2)file1的扩展名

line1
line2
hello1
hello2

文件2

line1
line2
hello1
hello2
hello3

在这里我想删除 file1 中的所有行并用file2 的行hello替换它们hello

4

1 回答 1

0

这解决了 Q1

@echo off

for /f "tokens=1,* delims==" %%a in ('find "helloa" ^< file2.txt') do set helloa=%%b
for /f "tokens=1,* delims==" %%a in ('find "hellob" ^< file2.txt') do set hellob=%%b

for /f "delims=" %%a in (file1.txt) do (
for /f "delims==" %%b in ("%%a") do (
if "%%b"=="helloa" (
>>file.tmp echo helloa=%helloa%
) else if "%%b"=="hellob" (
>>file.tmp echo hellob=%hellob%
) else (
>>file.tmp echo(%%a
)
)
)
move file.tmp file1.txt
pause
于 2013-05-05T15:03:00.020 回答