2017-11-09 7 views
-1

ファイルAに1つの文字列を注入する:バッチスクリプト:String.Formatの(または該当する機能)別の

{ 
"key": "{0}" 
} 

ファイルB:

"value from file B" 

私はcmd.exeのスクリプトを記述しようとしていますそれは、ファイルAにファイルBをフォーマットし、出力として新しいファイルCを生成します

出力ファイルC:

File A: 
{ 
"key": "value from file B" 
} 
私はちょうど呼び出し、その後、文字列変数に2つのファイルをロードすることで、このためにできたのC#で

string file_c = String.Format(file_a, file_b); 

を機能はしていない場合、私はcmd.exeのスクリプト(またはPS1スクリプトで同等の操作を行うことができますどのように私はあなたが01、したがって(FileB.txtから埋め込まれた引用符を望んでいないと仮定しています

Get-Content FileA.txt | ForEach-Object { 
    if ($_ -match '{\d+}') { 
    $_ -f ((Get-Content FileB.txt) -replace '^"','' -replace '"$','') 
    } 
    else { 
    $_ 
    } 
} 

: - cmd.exeの私は希望コマンドスクリプト)が

+0

-fコマンドを確認しましたか? https://technet.microsoft.com/en-us/library/2008.06.windowspowershell.aspx – curropar

+1

C#でそれを行うことはできませんでした。それは 'System.FormatException:入力文字列が正しい形式ではありませんでした。 JSONスタイルのハッシュオープニングライン([repl.itのテストコード](https://repl.it/OD3n/0))のエスケープされていない '{'これをファイルに修正すれば、.Net言語であり、同じ文字列と書式設定メカニズム '$ c =(get-content a.txt -raw)-f(get)を使うことができるので、PowerShellで同じことをすることができます-content b.txt -raw) 'を実行します。 – TessellatingHeckler

答えて

0

PowerShellでは、これは次のようになりオペレータ)。

関連する問題