为了账号安全,请及时绑定邮箱和手机立即绑定

在PowerShell中在新行上用空格分隔字符串

在PowerShell中在新行上用空格分隔字符串

精慕HU 2019-12-06 12:49:53
我正在使用PowerShell脚本,在该脚本中,我使用以下格式输入长字符串(来自CSV文件):第一组名称第二组名称第三组名称...我正在尝试与解析($entry.'Group Name').split("`n ") | %{    if ($_) {        # Do something with the group name        $_    }}我想得到像这样的输出:第一组名称第二组名称第三组名称...但结果如下:集团的一个名称组两个...
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

中的string参数String.Split()是要分割的字符列表,而不是要匹配然后分割的字符序列。您现有的代码将在换行符上分割,并在空间上分割。


如果只想在换行符上分割,请使用:


.split("`n")

如果要在换行符的字符序列上进行分割,然后紧跟一个空格,则可以使用Regex.Split():


[Regex]::Split($entry.'Group Name',"`n ") | ...

或者,您可以使用-split运算符,该运算符还会按字符串而不是字符列表进行拆分:


$entry.'Group Name' -split "`n "


查看完整回答
反对 回复 2019-12-06
?
湖上湖

TA贡献2003条经验 获得超2个赞

如果我没看错,则您的呼叫同时.Split传入`n了空格字符。因此,您实际上是在要求PowerShell将一个类似的字符串"Group One Name"转换成一个类似这样的列表@("Group", "One", "Name")

如果$entry是单个记录,并且您对“组名”,“组二名”和“组三名”中的每一个都运行一次此行,那么您可能根本不需要调用.Split-只需使用$entry.'Group Name'直。


查看完整回答
反对 回复 2019-12-06
  • 3 回答
  • 0 关注
  • 1278 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信