2017-07-27 67 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