powershell
2017-12-21 1 views 3 likes 
3

저는 powershell을 처음 사용하기 때문에이 변수에 내 변수를 전달해야하지만 큰 따옴표를 이스케이프 처리하면 변수 값이 전달되지 않기 때문에 생각합니다. 이스케이프 된 이중 qoutes를 사용하여 powershell 문자열 내에서 변수를 전달하는 방법

그래서, 당신의 코드가 작동을 다음으로 변경하기 위해 "`수행하여 PowerShell에서

$A = '[email protected]' 
$B ='{ 
    \"merchant_info\": { 
    \"email\": \" $A \", 
    }' 
write-host $B 
+2

를 사용 를 ConvertTo-JSON

$B = @{"merchant_info" = @{"email" = $A} } | ConvertTo-Json 

사용. @ { "merchant_info"= @ { "email"= $ A}}와 비슷한 것을 할 수 있습니다. convertto-json은 작은 따옴표 또는 큰 따옴표를 이스케이프 걱정할 필요없이 모두 올바른 형식을 갖습니다. – Shadowzee

+0

작은 따옴표로 묶은 문자열을 사용하고 있기 때문입니다. PowerShell은 큰 따옴표로 묶인 문자열의 변수를 작은 따옴표로 묶은 문자열로 보간하지 않습니다. 백 슬래시는 powershell 문자열 이스케이프 문자가 아니며, 역 따옴표입니다. – TessellatingHeckler

답변

2

`, 당신은 또한 수 다음 옵션 중 하나를 사용하십시오.

를 사용하여 여기 - 문자열

$B = 
@" 
{ 
    "merchant_info": { 
     "email": "$A" 
    } 
} 
"@ 

당신은 또한 JSON을 작성하려고하는 것 같습니다 두 "

$B = "{""merchant_info"": {""email"": ""$A"" } }" 
4

탈출 따옴표 : 문자를 탈출 또한

$A = '[email protected]' 
$B ="{`"merchant_info`": {`"email`": `"$A`",}" 
write-host $B 
관련 문제