PowerShell пытается преобразовать в целое число вместо строки - PullRequest
0 голосов
/ 25 сентября 2019

Моя проблема в том, что PowerShell хочет преобразовать "=" в целое число при попытке использовать его для создания новой строки.Я убедился, что моя результирующая переменная также будет строкой.Вот моя задача:

У меня есть маленькая таблица Excel, подобная этой:

___________|VLANID1|VLANID2|VLANID3|
SwitchName1|    1-7|  12-16|   8-11| ← Ports 1-7 of Switch1 are configure for VLAN1...
SwitchName2|    1-7|  12-16|   8-11|    

Из этой таблицы я хочу сохранить каждый порт в файле .ini с VLAN, в которой он настроен., aka:

[SwitchName1]
1=VLANID1
2=VLANID3
...

А вот мой код, который я зацикливаю до тех пор, пока не останется ни одного порта, а затем больше не будет коммутаторов.

$split = $global:Ports -split("-") #$Ports is the Value with the saved excel cell (7-11)
$split[0]..$split[1] | ForEach-Object {
    $vlan = $global:Switches.Cells.Item(1, $global:SSpallte).Text
    [string]$inistring = "`n" + $_ + "=" + $vlan #<- Here it tries to convert "=" into integer
    Add-Content -Path $global:portsini -Value $inistring
}

Я даже пытался преобразовать каждую переменную, которую я использую всделать $inistring до строки, она все еще не работает.Кроме того, $_ и $vlan имеют значение и не являются $null.

В сообщении об ошибке указано, что «=» нельзя преобразовать в тип «System.Int32».

1 Ответ

0 голосов
/ 25 сентября 2019

Итак, я не совсем уверен, в чем была проблема, но мой способ ее решения состоял в том, чтобы перезапустить среду.Я программирую в PowerShell ISE, который я иногда видел, «кэшируя» переменные.Этот перезапуск ISE заставил программу работать снова.И нет, я ничего не изменил заранее.В конце я рад, что моей проблемы больше нет, но я все еще задаюсь вопросом, почему ошибка была вызвана символом "=".

...