2016-08-22 2 views

답변

1

샘플 데이터는 JSON 형식으로 나타납니다, 그래서 당신은, 다음과 같이 JSON 문자열로 다시 개체를 변환, 객체에 JSON 문자열을 변환하여 수정 속성을 변경할 것 :

$file = 'C:\path\to\sample.txt' 

(Get-Content $file -Raw) | ConvertFrom-Json | ForEach-Object { 
    $_.port  = 23 
    $_.protocol = 'tcp' 
    $_     # echo current object to feed it back into the pipeline 
} | ConvertTo-Json -Compress | Set-Content $file 

PowerShell v2 또는 이전 버전에서는 v3과 함께 도입 된 매개 변수를 에뮬레이트하려면 (Get-Content $file) | Out-String을 실행해야합니다.

1

JSON으로 작업하고 있으므로 JSON!

$json = Get-Content .\sample.txt | ConvertFrom-Json 
$json.port = 23 
$json.protocol = 'tcp' 
$json | ConvertTo-Json -Compress | Out-File .\sample.txt 
  • 먼저 나는 파일을 읽고 PowerShell에서 개체에 JSON에서 변환 할 수 있습니다. (라인 1)
  • 이제이 개체를 편집 할 수 있습니다. (라인 2-3)
  • 마지막으로 JSON으로 다시 변환하여 파일에 씁니다. (라인 4)

희망이 도움이됩니다.

+0

답변 해 주셔서 감사합니다. 나는이 코드에서 조금 혼란 스럽다. '포트'를 '30'으로 변경하고 '프로토콜'을 'udp'로 변경하는 방법에 대해 설명해주십시오. 미리 감사드립니다. – rcubefather

+0

알겠습니다. 코드를 입력 해주세요. 감사합니다. – rcubefather

+0

portnumer의 편집 부분은 다음과 같습니다. $ json **. port = 23 ** –