如何在PowerShell中拆分字符串并为每个拆分项添加唯一编号?
实现PowerShell拆分字符串并为项添加编号
当然可以实现!这里有几种简单直观的方法来达到你想要的效果:
方法1:用ForEach-Object流式处理计数
这种方法通过管道直接处理拆分后的每个元素,同时维护一个计数器,代码简洁高效:
$SourceDir = "D:\SQLServer2016\BackupOne,D:\SQLServer2016\BackupTwo" # 拆分后为每个项添加编号,默认每行输出一个结果 $SourceDir -split ',' | ForEach-Object -Begin { $count = 1 } -Process { "$_,$count"; $count++ }
如果想把结果合并成和你示例一致的空格分隔字符串,只需加上-join操作:
$SourceDir = "D:\SQLServer2016\BackupOne,D:\SQLServer2016\BackupTwo" $numberedResult = $SourceDir -split ',' | ForEach-Object -Begin { $count = 1 } -Process { "$_,$count"; $count++ } $numberedResult -join ' '
执行后会输出你想要的格式:D:\SQLServer2016\BackupOne,1 D:\SQLServer2016\BackupTwo,2
方法2:基于数组索引的循环处理
先把拆分结果存入数组,再通过循环遍历索引来添加编号(注意PowerShell数组索引从0开始,所以要加1得到从1开始的编号):
$SourceDir = "D:\SQLServer2016\BackupOne,D:\SQLServer2016\BackupTwo" $splitItems = $SourceDir -split ',' $numberedItems = @() for ($i = 0; $i -lt $splitItems.Count; $i++) { $numberedItems += "$($splitItems[$i]),$($i+1)" } # 输出合并后的目标字符串 $numberedItems -join ' '
这两种方法都能完美满足你的需求,你可以根据自己的使用习惯选择。
内容的提问来源于stack exchange,提问作者Pixelated
相关产品推荐
相关产品推荐

