2017-07-27 9 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()を試してみてください。$ Reponse.Trim()を試してください。これは、行の先頭と末尾の空白/ etcを削除します。 – TheIncorrigible1

答えて

3

$response文字列の配列が含まれています。個々の文字列にはテスト対象の文字が含まれていなくても、配列をエコーすると一度に1つの文字列が表示されます。

あなたは単に二重引用符で変数を置くことができ改行せずに単一の文字列として応答する場合:デフォルトでは

"$response" 

をこれは、それらの間のスペースを持つ配列要素を結合します。あなたが最初に$OFS = ''を設定し、あるいは単に空の文字列を配列に参加できることをしたくない場合は、次の

$response -join '' 

または

-join $response 

あなたは改行することができますパイプcurlを持つレスポンスが必要な場合

Out-Stringを介して:

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

DOH!私はそれが異なるデータ構造になるかもしれないとは思わなかった...ありがとう!!! – lukehawk

+1

クイックチェックは '$ Response.GetType()'でしたので、文字列の代わりに配列があることがわかりました。 – TheMadTechnician

関連する問題