标题: [文件操作] 请教个文件内容替换的批处理 [打印本页]
作者: fish509008 时间: 2021-12-4 22:03 标题: 请教个文件内容替换的批处理
请教个问题:
文件a.txt内容如下:
S1,R1
S2,R2
S3,R3
...
文件pro程序.c内容如下:
...
**S1**
**S1**
**S3**
**S1**
**S1**
...
现在想把文件pro程序.c中的所有的S1替换为R1(如果有的话),S2替换为R2(如果有的话),...
结果文件pro程序new.c如下:
...
**R1**
**R1**
**R3**
**R1**
**R1**
...
作者: for_flr 时间: 2021-12-9 14:40
powershell- $hash=@{}
- gc a.txt|%{
- $s=$_.split(",")[0]
- $r=$_.split(",")[1]
- $hash.$s=$r
- }
- gc c.txt|%{
- $kw=$_.split("*")[3]
- $_.replace($kw,$hash.$kw) >>new.txt
- }
复制代码
作者: xczxczxcz 时间: 2021-12-9 16:58
回复 2# for_flr
这样应该更简单- $c=gc '.\c.txt' -Raw
- (gc '.\a.txt').Foreach{
- $t=$_.split(',',2);
- $c=[regex]::Replace($c, $t[0], $t[1]);
- }
- sc '.\c_new.log' -Value $c -Force;
复制代码
作者: for_flr 时间: 2021-12-9 17:09
回复 3# xczxczxcz
谢谢指导,我用的2.0,还没有-row参数。我想问下.split(",",2)这里面的2是指定切分成两段吗,为啥不省略掉。(新手,不确定是不是,问一下稳妥点。)
作者: xczxczxcz 时间: 2021-12-9 17:16
回复 4# for_flr
一、没有 RAW 可以 : -join "`n"; win7需要 -join "`r`n"
二、'a,b,c,d'.split(',') = 'a','b','c','d'; 'a,b,c,d'.split(',',2)='a','b,c,d'
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |