Я изо всех сил пытаюсь заставить этот сценарий работать.
Я пытаюсь обработать все CSV-файлы (по одному) с помощью powershell и сохранить каждый CSV-файл в виде отдельного текстового файла.
В текстовом файле я надеюсь, что все IP-адреса в одной строке разделены запятой (например, 192.168.73.44,192.168.75.224,192.168.76.45,192.168.77.105,192.168.77.237,192.168.78.33 , 192.168.78.92)
Таким образом, этот скрипт должен извлечь значение каждого столбца ipv4address из определенного файла CSV и добавить запятую "," после каждого IP-адреса и добавить все IP-адреса из этого конкретного CSV в текстовый файл.
Мой скрипт обрабатывает CSV-файлы и генерирует текстовые файлы, но записывает только первый IP-адрес, найденный в CSV-файле, в текстовый файл.
Не могли бы вы помочь мне здесь?
Get-ChildItem C:\Temp\Qualys\All\AssetGroups\*.csv | Foreach-Object {
$basename = $_.Name
$detail = import-csv $_
foreach ($csv in $detail) {
$Outputs =@()
$field = $csv.ipv4address
$field = $field + ","
$Outputs +=$field
}
$Outputs | Out-File "C:\Temp\Qualys\All\AssetGroups\Textfiles\$basename.txt"
$regexA = "(\s,)"
$regexB = "\s"
(Get-Content C:\Temp\Qualys\All\AssetGroups\Textfiles\$basename.txt | Out-String) -replace $regexA,' ' -replace "`r?`n(?!`r?`n)" -join ' ' -replace $regexB, ''|
Set-Content C:\Temp\Qualys\All\AssetGroups\Textfiles\$basename.txt
$b = Get-Content -Path C:\Temp\Qualys\All\AssetGroups\Textfiles\$basename.txt
@(ForEach ($a in $b) {$a.Replace(' ', '')}) > C:\Temp\Qualys\All\AssetGroups\Textfiles\$basename.txt
}
IPs.csv