Не работает функция из скрипта
Доброго времени суток всем.
Пытаюсь сделать скрипт, к-рый будет ссылаться на другой скрипт, и при проверки столкнулся с проблемой, что комп не запоминает функцию.
Есть функция, лежащая в одноименном файле:
Код:
Function PingAw($CompName) {
$ping = New-Object System.Net.NetworkInformation.Ping
try
{
$Reply = $ping.Send($CompName)
}
catch
{
Write-host "Для машины " $CompName "не удалось выполнить ping"
}
return $Reply.status
}
из консоли запуская этот файл, и потом пробую запустить ф-цию
Код:
PS D:\Scripts> .\PingAw.ps1
PS D:\Scripts> Try { PingAw("127.0.0.1") } catch { echo "You must run PingAw script first" }
You must run PingAw script first
Suggestion [3,General]: The command PingAw was not found, but does exist in the current location. Windows PowerShell doe
sn't load commands from the current location by default. If you trust this command, instead type ".\PingAw". See "get-he
lp about_Command_Precedence" for more details.
PS D:\Scripts>
|
etherlord,
Назови скрипт или функцию иначе, что бы избежать конфликта имен.
Если надо, что бы функция была всегда доступна, то пропиши ее в стартовый скрипт ( profile.ps1 )
Тогда все работает:
Код:
> gc file.ps1
function y { 'yes' }
> . .\file.ps1
> y
yes
>
|
Спасибо, помогло.
а это куда?
|
Цитата:
Цитата etherlord
Пытаюсь сделать скрипт, к-рый будет ссылаться на другой скрипт, и при проверки столкнулся с проблемой, что комп не запоминает функцию. »
|
Ты вызываешь скрипт на выполнение, а не добавляешь функцию в текущую среду выполнения. Нужно сделать так
Код:
Import-Module .\PingAw.ps1
|
В свой профиль, если нет, создай. Посмотри в сети, в него можно много полезного добавить.
Код:
C:\Users\<user>\Documents\WindowsPowerShell\profile.ps1
|
Время: 21:29.
© OSzone.net 2001-