我有一个包含2行信息的CSV文件。我想同时使用它们,但不是作为1个数组。
在此示例中,我的CSV如下所示:
brew uninstall open-cobol
我的目标是使用计算机和名称根据我的CSV中的值将所有者添加到AD中的计算机。为了实现这一点,我觉得我需要将这些值拆分为2个数组,然后我就可以为每个循环
了答案 0 :(得分:1)
您可以为CSV的每一列获取单独的数组:
$csv = Import-Csv 'C:\path\to\your.csv'
$names = $csv | Select-Object -Expand Name
$computers = $csv | Select-Object -Expand Computer
答案 1 :(得分:1)
由于额外的空格,您的$(function(){
// Your code here
});
文件似乎格式不正确。这是初学者的解决方案:
阅读CSV
Get-Help 'about_Split' -ShowWindow
对于修改后的Ansgar Wiechers解决方案(无疑比我的初学者更聪明),请阅读$separator = " ;" ### or $separator = " ", ";"
$option = [System.StringSplitOptions]::RemoveEmptyEntries
$myFile = 'D:\bat\SO\34718014.csv'
ForEach ($strLine in Get-Content $myFile) {
$asplit = $strLine.Split($separator, $option)
if (($asplit[0] + $asplit[1] -ne "NameComputer") -and ($asplit[0] + $asplit[1] -ne $Null)) {
'['+$asplit[0]+']['+$asplit[1]+']' #debug output
#
# place your code to add owner to computer in AD here
#
} else {
"skipped line: " + $strLine # debug output: skipped CSV header, skipped empty line(s)
}
}
。但是,它会在Get-Help 'Import-Csv' -ShowWindow
中保留额外的尾随空格:
$Names
<强>输出强>:
Write-Host "Ansgar Wiechers' solution:"
$csv = Import-Csv 'D:\bat\SO\34718014.csv' -Delimiter ";"
$names = $csv | Select-Object -Expand "Name "
$computers = $csv | Select-Object -Expand Computer
For ($i=0; $i -le $names.Count; $i++) {
('[' + $names[$i] + '][' + $computers[$i] + ']')
}
答案 2 :(得分:0)
您需要@native private def sampleMethod(argOne: Long): Int
功能。
这里有一些很好的信息:http://ss64.com/ps/split.html
但基本上是:
split()
答案 3 :(得分:0)
我找到了我的问题的解决方案,因为我的列表已经完成,并且为了将csv拆分为2个文件并使用此代码完成工作
$names = Get-Content Names.txt
$comp = Get-Content computers.txt
for($x=0; $x -lt $comp.length; $x++)
{
Write-Host $comp[$x]
Write-Host $names[$x]
Get-ADComputer $comp[$x] -Properties * | Set-ADComputer -ManagedBy $names[$x]
}