Powershell: скрипт не запускается из командной строки, а запускается из ISE? - PullRequest
2 голосов
/ 02 сентября 2011

Вот функция, которую я вызываю в моем скрипте:

Function SetUp-ScheduledTasks
{
param
(
    [string]$Server = "",
    [string]$TaskName = "",
    [string]$ReleasePath = "",
    [string]$User = "",
    [string]$Pwd = ""   
)

try
{
    Set-ExecutionPolicy RemoteSigned

    Remove-ScheduledTask -ComputerName $Server -TaskName $TaskName Get-ScheduledTask
    Create-ScheduledTask -ComputerName $Server -TaskName $TaskName -TaskRun $ReleasePath  -Schedule "DAILY" -StartTime "02:00:00" -RunAsUser $User -RunAsPwd $Pwd

    exit 1
}   
catch
{           
    exit 0
}

}

Когда я вызываю это изнутри Powershell_ISE в файле скрипта, но вне любой функции, она работает отлично, вот что я делаю для этого:SetUp-ScheduledTasks "myserver" "MyTask1" "c:\release" "theuser" "thepassword"

Однако, когда я вызываю его из командной строки PS следующим образом: . .\ScheduledTasks.ps1 SetUp-ScheduledTasks "myserver" "MyTask1" "c:\release" "theuser" "thepassword" Это ничего не делает.

Я также пытался квалифицировать каждый параметр с дефисом и именем, но этовсе еще не работает.

Что мне не хватает?

Спасибо!

1 Ответ

6 голосов
/ 02 сентября 2011

Позвольте мне повторить, что вы делаете, но с более простым примером:

У вас есть функция, например, так:

function a{
write-host "this is function a"
}

Допустим, вы сохранили ее в test.ps1

Теперь, чтобы проверить это в ISE, вы выполните ниже в test.ps1:

function a{
write-host "this is function a"
}

a

И нажмите кнопку Run, и вы получите ожидаемый результат, в данном случае this is function a

Теперь вы используете оригинальный файл test.ps1 без нижней строки (a) и вызываете его из консоли так:

. .\test.ps1 a

И он не даетвыход.Зачем?a, предполагаемый вызов функции передается в качестве параметра в скрипт, а функция a не вызывается.

Вы должны сделать это следующим образом:

. .\test.ps1; a

PS: Вы не используете exit 0 и exit 1 в неправильных местах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...