2017-11-09 14 views
-1

파일 A에 하나의 문자열을 삽입합니다 :배치 스크립트 및 String.format (또는 해당되는 기능) 다른

{ 
"key": "{0}" 
} 

파일 B :

"value from file B" 

나는 cmd.exe를 스크립트를 작성하는 것을 시도하고있다 즉 파일 A에 파일 B를 포맷하고, 출력 된 새로운 파일 C를 생성한다

출력 파일 C :

File A: 
{ 
"key": "value from file B" 
} 
난 그냥 전화 후, 문자열 변수에 두 개의 파일을로드하여이 위해 할 수있는 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 : 입력 문자열이 올바른 형식이 아닙니다 .' 때문에 ({[repl.it의 테스트 코드]] (https://repl.it/OD3n/0)에서 이스케이프 처리되지 않은'{'의 JSON 스타일 해시 개통 라인). 이 파일을 고치면 PowerShell에서 똑같은 일을 할 수 있습니다. 닷넷 언어이기 때문에 동일한 문자열과 형식화 메커니즘을 사용할 수 있습니다.'$ c = (get-content a.txt -raw) -f (get -content b.txt -raw)'. – TessellatingHeckler

답변

0

PowerShell에서,이 같을 것연산자).