请大神指教如何以条件方式用批处理批量替换文本文件内容? 5
如文本A内容如下AAAbbbbCCCAAAssssGGGBBByyyyHHHXXXuuuuJJJJ………………文本B内容如下(B文本内容是动态的每一次运行批处理内容都随机...
如文本A内容如下
AAAbbbbCCC
AAAssssGGG
BBByyyyHHH
XXXuuuuJJJJ
………………
文本B内容如下(B文本内容是动态的每一次运行批处理内容都随机变化)
1111
1234
4896
7536
………………
修改后内容如下
AAA1111CCC
AAA1234GGG
BBB4896HHH
XXX7536JJJJ
………………
详细见图在此先谢过大神了 展开
AAAbbbbCCC
AAAssssGGG
BBByyyyHHH
XXXuuuuJJJJ
………………
文本B内容如下(B文本内容是动态的每一次运行批处理内容都随机变化)
1111
1234
4896
7536
………………
修改后内容如下
AAA1111CCC
AAA1234GGG
BBB4896HHH
XXX7536JJJJ
………………
详细见图在此先谢过大神了 展开
1个回答
展开全部
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
<# :
cls
@echo off
rem 将一个txt文本文件内指定特征行中的部分字符串内容一一对应替换成另一个txt文本文件内的每一行内容
mode con lines=5000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~f0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$file1=".\A.txt";
$file2=".\B.txt";
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
$file1=$file1 -replace '^\.',$path;
$file2=$file2 -replace '^\.',$path;
if(-not (test-path -liter $file1)){Write-host ('"'+$file1+'" not found');exit;};
if(-not (test-path -liter $file2)){Write-host ('"'+$file2+'" not found');exit;};
$enc=[Text.Encoding]::GetEncoding('GB2312');
$text1=[IO.File]::ReadAllText($file1,$enc);
$text2=[IO.File]::ReadAllLines($file2,$enc);
$global:n=0;
$text1=[regex]::replace($text1,'(?<=ref13\.putName\(\s*?idLyr,\s*?")[^"]+',{
param($m);
if($global:n -le $text2.count){
$text2[$global:n];
}else{
$m.groups[0].value;
};
$global:n++;
});
write-host $text1;
<# :
cls
@echo off
rem 将一个txt文本文件内指定特征行中的部分字符串内容一一对应替换成另一个txt文本文件内的每一行内容
mode con lines=5000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~f0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$file1=".\A.txt";
$file2=".\B.txt";
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
$file1=$file1 -replace '^\.',$path;
$file2=$file2 -replace '^\.',$path;
if(-not (test-path -liter $file1)){Write-host ('"'+$file1+'" not found');exit;};
if(-not (test-path -liter $file2)){Write-host ('"'+$file2+'" not found');exit;};
$enc=[Text.Encoding]::GetEncoding('GB2312');
$text1=[IO.File]::ReadAllText($file1,$enc);
$text2=[IO.File]::ReadAllLines($file2,$enc);
$global:n=0;
$text1=[regex]::replace($text1,'(?<=ref13\.putName\(\s*?idLyr,\s*?")[^"]+',{
param($m);
if($global:n -le $text2.count){
$text2[$global:n];
}else{
$m.groups[0].value;
};
$global:n++;
});
write-host $text1;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询