标题: [文本处理] [已解决]如何用批处理根据内容 替换 指定内容? [打印本页]
作者: czvde 时间: 2022-5-3 10:45 标题: [已解决]如何用批处理根据内容 替换 指定内容?
本帖最后由 czvde 于 2022-5-4 18:43 编辑
123文件夹如下:
aaa.txt
aaa-1.txt
例如
aaa.txt的内容如下:
0123456
111ccc0011ccc0020
调用12.txt的数据进行替换
运行批处理后的效果
aaa-1.txt的内容如下:
0123456
111ccc二零三零ccc三零111
已解决!
作者: idwma 时间: 2022-5-4 14:22
- #@&cls&powershell "type %~s0|out-string|iex"&pause&exit
- $a=gc '123.txt'
- dir '123\*.txt'|%{
- $n=$_.fullname
- while(test-path $n){
- if($n -match '.*?-(\d+)\.txt$'){
- $n=$matches[0] -replace '(\d+)(?=\.txt$)',([int]$matches[1]+1)
- }else{
- $n=$_.DirectoryName+'\'+$_.basename+'-1'+$_.extension
- }
- }
- sc $n $(gc $_.fullname|%{
- $c=$_
- $a|%{
- $d=$_ -split ','
- $d|%{
- if($c -cmatch $d[$i++]){
- if($d[$i] -ne $null){
- $e=$c -creplace "$_",$d[$i]
- }else{
- $e=$c -creplace "$_",$d[0]
- }
- }
- }
- rv i
- }
- if($e -eq $null){$c}else{$e;rv e}
- })
- }
复制代码
作者: czvde 时间: 2022-5-4 16:43
本帖最后由 czvde 于 2022-5-4 18:37 编辑
回复 2# idwma
方便实用,谢谢
作者: idwma 时间: 2022-5-4 17:58
- #@&cls&powershell "type %~s0|out-string|iex"&pause&exit
- $s=@{
- 1='001'
- 2='ABCD'
- }
- $s
- $s=$s[[int](read-host)]
- $a=gc '123.txt'
- dir '123\*.txt'|?{$_.name -notmatch '.*-\d+.txt'}|%{
- $n=$_.fullname
- while(test-path $n){
- if($n -match '.*?-(\d+)\.txt$'){
- $n=$matches[0] -replace '(\d+)(?=\.txt$)',([int]$matches[1]+1)
- }else{
- $n=$_.DirectoryName+'\'+$_.basename+'-1'+$_.extension
- }
- }
- sc $n $(gc $_.fullname|%{
- $e=$_
- $a|%{
- $d=$_ -split ','
- if($d[1] -cmatch "$s---([^、]+)"){$e=$e -creplace $d[0],$matches[1]}
- }
- $e
- })
- }
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |