PowerShell仅打印字符串的第一个字母

先知

我有一个PowerShell脚本,该脚本连接到localhost API,该API返回“会话”的字典,以及它们是否处于活动状态

[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$response = Invoke-RestMethod 'https://localhost:44356/api/RDM/getSessions' -Method 'GET' -Headers $headers
$numOfUsers = Invoke-RestMethod 'https://localhost:44356/api/RDM/countSessions' -Method 'GET' -Headers $headers
for($x = 0; $x -lt $numOfUsers; $x++)
{
$user = $response.userId[$x]
$name = $response.sessionName[$x]
"`nSession Name: $name"
"User Logged In: $user`n"
}
pause

当多个会话处于活动状态时,它将正确返回:

Session Name: ExampleSession
User Logged In: ExampleUser

但是,当只有1处于活动状态时,它仅返回第一个字母:

Session Name: E
User Logged In: E

我确实知道此错误是由脚本而不是API引起的,但是到目前为止,我无法找到问题的根源。

mklement0

含义是,如果仅返回一个会话,$response.userId$response.sessionName不是单元素数组,而只是字符串-索引到字符串将返回字符(例如,'foo'[0]return 'f')。[1]

您可以使用@(),该阵列子表达式运算符,以确保你总是处理数组

$user = @($response.userId)[$x]
$name = @($response.sessionName)[$x]

如果会话数可能很大,则以下操作会更好(因为@(...)创建数组的副本[2],而[array]强制转换按原样使用现有的数组):

$user = ([array] $response.userId)[$x]
$name = ([array] $response.sessionName)[$x]

[1]请注意,与C#不同,返回的字符在技术上也是字符串[string]System.String),而不是[char]System.Char)实例,因为PowerShell本身不使用该[char]类型。

[2]在较旧的PowerShell版本(v5.0之前的版本)中,这也适用于具有明确枚举元素的数组;例如,@('foo', 'bar')但是此案例已经过优化,以适应使用此类表达式定义数组文字的广泛实践-即使@(...)并不需要严格要求('foo', 'bar'单独也可以)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅显示每个单词的字符串的第一个字母

来自分类Dev

打印字符串的第一个字符会导致分段错误

来自分类Dev

Python 3.5 ctypes libc printf()仅打印字符串Windows 7/10的第一个字节

来自分类Dev

Python 3.5 ctypes libc printf()仅打印字符串Windows 7/10的第一个字节

来自分类Dev

仅打印字符串中的最后一个字符

来自分类Dev

如何仅输出字符串中每个单词的第一个字母?Visual Basic

来自分类Dev

PHP-Foreach循环仅回显字符串的第一个字母

来自分类Dev

在作为字母的字符串中查找第一个字符

来自分类Dev

将字符串的第一个单词更改为第一个字母

来自分类Dev

大写字符串的第一个字母

来自分类Dev

在AngularJs中大写字符串的第一个字母

来自分类Dev

如何使用jQuery从字符串中获取第一个字母

来自分类Dev

Django获取字符串的第一个字母

来自分类Dev

查找字符串中的第一个字母-Javascript

来自分类Dev

从列中获取字符串的第一个字母

来自分类Dev

如何检查字符串中的第一个字母是数字

来自分类Dev

Xpath:紧随元素之后的第一个字母/字符串

来自分类Dev

在JavaScript中使用字符串的RegEx的第一个字母

来自分类Dev

在TextBox的上方将字符串的第一个字母

来自分类Dev

匹配Tcl中字符串的第一个字母

来自分类Dev

C中字符串的第一个字母

来自分类Dev

cmd:从字符串中查找第一个字母

来自分类Dev

将第一个字母添加到字符串

来自分类Dev

从第一个字母中提取子字符串

来自分类Dev

字符串查找方法找不到第一个字母

来自分类Dev

Pinvoke字符串中仅传递第一个字符

来自分类Dev

C ++ fstream仅保存字符串的第一个字符

来自分类Dev

C ++ fprintf只打印第一个字符串

来自分类Dev

C ++ fprintf只打印第一个字符串

Related 相关文章

  1. 1

    仅显示每个单词的字符串的第一个字母

  2. 2

    打印字符串的第一个字符会导致分段错误

  3. 3

    Python 3.5 ctypes libc printf()仅打印字符串Windows 7/10的第一个字节

  4. 4

    Python 3.5 ctypes libc printf()仅打印字符串Windows 7/10的第一个字节

  5. 5

    仅打印字符串中的最后一个字符

  6. 6

    如何仅输出字符串中每个单词的第一个字母?Visual Basic

  7. 7

    PHP-Foreach循环仅回显字符串的第一个字母

  8. 8

    在作为字母的字符串中查找第一个字符

  9. 9

    将字符串的第一个单词更改为第一个字母

  10. 10

    大写字符串的第一个字母

  11. 11

    在AngularJs中大写字符串的第一个字母

  12. 12

    如何使用jQuery从字符串中获取第一个字母

  13. 13

    Django获取字符串的第一个字母

  14. 14

    查找字符串中的第一个字母-Javascript

  15. 15

    从列中获取字符串的第一个字母

  16. 16

    如何检查字符串中的第一个字母是数字

  17. 17

    Xpath:紧随元素之后的第一个字母/字符串

  18. 18

    在JavaScript中使用字符串的RegEx的第一个字母

  19. 19

    在TextBox的上方将字符串的第一个字母

  20. 20

    匹配Tcl中字符串的第一个字母

  21. 21

    C中字符串的第一个字母

  22. 22

    cmd:从字符串中查找第一个字母

  23. 23

    将第一个字母添加到字符串

  24. 24

    从第一个字母中提取子字符串

  25. 25

    字符串查找方法找不到第一个字母

  26. 26

    Pinvoke字符串中仅传递第一个字符

  27. 27

    C ++ fstream仅保存字符串的第一个字符

  28. 28

    C ++ fprintf只打印第一个字符串

  29. 29

    C ++ fprintf只打印第一个字符串

热门标签

归档