2017-07-27 27 views
1

我有一個來自API的響應,它看起來有換行符。但是,我找不到實際存在的字符,因此無法分割此字符串。在字符串中隱藏新的行字符?

$response = curl.exe POST --silent --user $creds --data-raw $request $url 
$response.contains("`f") 
$response.contains("`r") 
$response.contains("`n") 
$response 

輸出:

 
False 
False 
False 
"92837F755","BES","780532219" 
"46431P106","BES","!NA" 
"Y2069P309","BES","!NA" 
+0

嘗試'$ Reponse.Trim()'這將刪除行的開始和結束的任何空白/ etc。 – TheIncorrigible1

回答

3

$response包含字符串的數組。回顯數組一次顯示一個字符串,即使單個字符串不包含您正在測試的任何字符。

如果你想爲一個字符串的應答,而不換行,你可以簡單地把該變量在雙引號:

"$response" 

默認情況下此加入與他們之間的空間數組元素。如果你不想,你可以設置$OFS = ''第一,或乾脆爲空字符串加入數組:

$response -join '' 

-join $response 

如果你想換行,你可以管curl響應輸出通過Out-String

$response = curl.exe ... | Out-String 
+0

DOH!我甚至不認爲它可能是一個不同的數據結構......謝謝! – lukehawk

+1

你可以做的快速檢查是'$ Response.GetType()',它會顯示你有一個數組而不是一個字符串。 – TheMadTechnician