Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Вместо этого вы можете использовать следующий код (я просто изменил вызовы записи-записи на форматирование CSV) и выполнил его с помощью «PowerShell.exe script.ps> output.csv». Обратите внимание, что вы должны выполнить его из папки, содержащей hnames.txt или просто измените «hnames.txt» на полный путь.
$names = Get-content "hnames.txt"
foreach ($name in $names){
if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){
Write-Host "$name,up"
}
else{
Write-Host "$name,down"
}
}
PS Вы также можете использовать командную команду Out-File для создания файла CSV
Я полный новичок в Powershell, поэтому я принял это как учебную задачу, так как мне нужен был быстрый и простой способ проверить список ПК для статуса вверх / вниз. Эти настройки были необходимы, чтобы заставить его выводить чисто на экран и в txt-файл
$Output= @()
$names = Get-content "hnames.txt"
foreach ($name in $names){
if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){
$Output+= "$name,up"
Write-Host "$Name,up"
}
else{
$Output+= "$name,down"
Write-Host "$Name,down"
}
}
$Output | Out-file "C:\support\result.csv"