gpt4 book ai didi

powershell - 如何在Powershell中向数组添加多行字符串?

转载 作者:行者123 更新时间:2023-12-02 23:07:46 34 4
gpt4 key购买 nike

我试图遍历一系列txt文件,将信息提取到基于:分隔符的数组中。

我从文本文件中获取的所有值都适合一行,除了其中一行。 (“广告文字”值)。这将切断最终输出中第1行之后的信息。当我事先卸下滑架并中断时,没有正确输入任何字段。

如何指定希望数组接受“广告文字”字段的多行输入?

以下是我正在使用的代码:

$files = ls "*.txt" 
$dictionary = @{}
[System.Collections.Generic.List[String]]$list = @()

foreach($f in $files){$in = Get-Content $f
$in.Split([Environment]::NewLine) | ForEach-Object { $key,$value = $_.Split(':')
$dictionary[$key] = $value
}

[void]$list.Add( $dictionary['Ad ID'] + ',' + $dictionary['Ad Text'] + ',' + $dictionary['Ad Landing Page'] + ',' + $dictionary['Ad Targeting Location'] + ',' + $dictionary['Age'] + ',' + $dictionary['Language'] + ',' + $dictionary['Placements'] + ',' + $dictionary['Interests'] + ',' + $dictionary['Behaviors'] + ',' + $dictionary['Ad Impressions'] + ',' + $dictionary['Ad Clicks'] + ',' + $dictionary['Ad Spend'] + ',' + $dictionary['Ad Creation Date'] + ','+ $dictionary['Friends'] + ',' + $dictionary['Ad End Date'] + ',' + $dictionary['Excluded Connections'] + ',' + $dictionary['Image'] + ',' + $dictionary['Ad Targeting Location']+','+$dictionary[‘File Name’] )
}


$list | Out-File -FilePath '.\trial.csv' -Append

最佳答案

假设Ad Text:前缀行之后的其他行本身不包含:字符:

# Create sample text file t.txt
@'
Ad ID:10
Ad Text:one
two
Ad Landing Page:http://example.org
'@ > t.txt

# Split the lines into field names and values by ":" and
# build a dictionary.
$dict = [ordered] @{}
$i = 0
(Get-Content -Raw t.txt) -split '(?m)^([^\n:]+):' -ne '' | ForEach-Object {
if ($i++ % 2 -eq 0) {
$key = $_
} else {
$dict[$key] = $_
}
}

# Output the dictionary, showing each entry as a list.
$dict | Format-List

输出如下,显示 Ad Text条目包括两行:
Name  : Ad ID
Value : 10


Name : Ad Landing Page
Value : http://example.org


Name : Ad Text
Value : one
two

关于powershell - 如何在Powershell中向数组添加多行字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56614735/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com