我正在编写一个简单的PowerShell脚本来打开由我生成的CSV,并将每个元素推送到telnet会话以配置设备。但是,由于我有重复的成员,我的剧本甚至没有开始!如果有人有这方面的指导,请告诉我。
这是powershell,我并不精通它,我只是使用旧代码来测试它是否可行。
$CSVFile = Import-CSV "C:\Users\Alexander\Documents\AMSProvisioning\code.CSV"
foreach ($Line in $CSVFile){
$GroupArray = $Line.split(",")
foreach ($code in $GroupArray){
"$code has been created!"
}
}
这是CSV文件。它只是一个命令列表,通常可以手动输入到配置/配置设备的交换机中。这也是一个测试CSV文件。
configure Equipment ont interface 1/1/1/3/1 sw-ver-plannd UNPLANNED sernum ALCL:7788h67a,"configure Equipment ont interface 1/1/1/3/1 desc1 ""Alex Manley""","configure Equipment ont interface 1/1/1/3/1 desc2 ""185 Alexander St""",configure equipment ont interface 1/1/1/3/1 admin-state down,configure equipment ont slot 1/1/1/3/1/1 planned-card-type 10_100base plndnumdataports 4 plndnumvoiceports 0 admin-state up,configure ethernet ont 1/1/1/3/1/1/[1...4] auto-detect auto,configure interface port uni:1/1/1/3/1/1/[1...4] admin-up,exit all,configure qos interface 1/1/1/3/1/1/[1...4] upstream-queue 0 bandwidth-profile name:BE_20Mb bandwidth-sharing uni-sharing,configure qos interface 1/1/1/3/1/1/[1...4] queue 0 shaper-profile name:100Mb_DOWN,configure bridge port 1/1/1/3/1/1/[1...4] max-unicast-mac 8,configure bridge port 1/1/1/3/1/1/[1...4] vlan-id 134 tag untagged,configure bridge port 1/1/1/3/1/1/[1...4] pvid 134 default-priority 0,configure interface port uni:1/1/1/3/1/1/[1...4] admin-up,exit all,configure equipment ont interface 1/1/1/3/1 admin-state up
答案 0 :(得分:2)
好吧,在它没有标题的意义上,这不是真正的CSV。你不是真的希望它是一个CSV,说实话,你只是希望它是一系列命令。而不是Import-CSV,您要使用的是Get-Content。这不会创建具有属性的对象,但您可以在逗号上拆分字符串并获取可以处理的数组。类似的东西:
$commands = Get-Content 'C:\Users\Alexander\Documents\AMSProvisioning\code.CSV' |
ForEach-Object{$_.Split(',')}
第一部分将CSV作为字符串数组导入。然后对于每一行,它在逗号上分割该行,创建一个单独命令的数组。所有命令都分配给$ code。
如果你需要每一行都是它自己的代码集,并且拥有一组代码集,你可以将每一行转换为一个对象,并让每个对象都有一个属性,即一个数组换行符号。类似的东西:
$commands = Get-Content 'C:\Users\Alexander\Documents\AMSProvisioning\code.CSV' |
ForEach{New-Object PSObject -Prop @{'Code'=$_.split(',')}}
那样$ commands [0] .code($命令的第一条记录)将是从CSV文件的第一行派生的命令数组。我不记得如何制作阵列数组,这对你来说可能是理想的,但这应该可以很好地工作。
答案 1 :(得分:0)
而不是导入-CSV我已经切换到使用get-content,因为它几乎执行我需要的相同功能。对不起你的错误,但非常感谢你的帮助!