

環境はwin機だけで実現できるもので考えています。

[code]

    target:.
    ├─D
    ├─Dow
    ├─M
    │  └─Sample
    │  └─SampleP
    ├─Rec
    │  └─Sample
    └─Vi
        └─Sample
    　　　    └─Sam
    
[/code]

ツリー表示したときにこのようになっていて、それぞれのフォルダ内に「*.txt」が存在します。  
ファイルに記述される「AAA:」を含む行を削除し、改行のみにしたいと考えています。

batファイルで考えていましたがとても難しいためvbsやWSHで可能なのか、  
どういう手順で実現できるか教えていただくと幸いです。


CC BY-SA 3.0
2018-01-16T06:56:03.180
41000
2018-06-25T04:55:09.697
2018-01-17T06:11:56.020
27015
27015
question
batch-file vbs
正規表現を用いた特定文字列を改行のみに置換


文字コードが決まっているならばPowershellで行けそうです。

下記のコードでは`C:\target`以下の*.txtファイルのAAA:から始まる行を全て削除して、UTF-8で保存します。

[code]

    $root = "C:\target" #置換対象フォルダ
    ls $root -Recurse  -Include *.txt | %{ $f = $_.FullName; $(Get-Content $f) -replace "^AAA:.*$", "" | Set-Content -Encoding UTF8 $f }
    
[/code]

上記スクリプトを実行すると、下記テキストの1行目から3  
行目が空白行に変換されます。

> aaa:  
>  AAA:  
>  AAA:B  
>  AAB:


CC BY-SA 3.0
2018-01-16T08:09:32.473
41006
2018-01-18T00:22:09.307
2018-01-18T00:22:09.307
9820
9820
41000
answer


Windows 7以降に標準でインストールされているPowerShellをお勧めします。

[code]

    foreach ($f in Get-ChildItem . -Include *.txt -Recurse) {
        @(Get-Content $f) -replace ".*AAA:.*", "" | Set-Content $f
    }
    
[/code]


CC BY-SA 3.0
2018-01-16T08:48:21.630
41009
2018-01-17T22:36:22.917
2018-01-17T22:36:22.917
4236
4236
41000
answer