Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Не работает функция из скрипта (http://forum.oszone.net/showthread.php?t=268023)

etherlord 13-09-2013 12:49 2217229

Не работает функция из скрипта
 
Доброго времени суток всем.
Пытаюсь сделать скрипт, к-рый будет ссылаться на другой скрипт, и при проверки столкнулся с проблемой, что комп не запоминает функцию.
Есть функция, лежащая в одноименном файле:
Код:

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>


Foreigner 13-09-2013 14:22 2217283

etherlord,

Назови скрипт или функцию иначе, что бы избежать конфликта имен.
Если надо, что бы функция была всегда доступна, то пропиши ее в стартовый скрипт ( profile.ps1 )

Тогда все работает:
Код:

> gc file.ps1
function y { 'yes' }
> . .\file.ps1
> y
yes
>


etherlord 13-09-2013 14:26 2217286

Спасибо, помогло.

Цитата:

Цитата Foreigner
стартовый скрипт »

а это куда?

sunnykey 13-09-2013 14:32 2217289

Цитата:

Цитата etherlord
Пытаюсь сделать скрипт, к-рый будет ссылаться на другой скрипт, и при проверки столкнулся с проблемой, что комп не запоминает функцию. »

Ты вызываешь скрипт на выполнение, а не добавляешь функцию в текущую среду выполнения. Нужно сделать так
Код:

Import-Module .\PingAw.ps1

Foreigner 13-09-2013 14:35 2217291

Цитата:

Цитата etherlord
а это куда? »

В свой профиль, если нет, создай. Посмотри в сети, в него можно много полезного добавить.
Код:

C:\Users\<user>\Documents\WindowsPowerShell\profile.ps1


Время: 21:29.

Время: 21:29.
© OSzone.net 2001-