Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Проблема с запуском скрипта в powershell

Ответить
Настройки темы
PowerShell - Проблема с запуском скрипта в powershell

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Neerdex
Дата: 13-10-2017
Помогите решить проблему. Суть следующая: есть скрипт "start.ps1", который нормально запускается и работает через "ПКМ/Выполнить с помощью PowerShell", но если я попытаюсь запустить сначала сам PowerShell и потом прописать путь к скрипту, то он выдает ошибку.
Код скрипта "start.ps1"

PHP код: Выделить весь код

param (
    [
string]$php "",
    [switch]
$Loop $true
)

if(
$php -ne ""){
    
$binary $php
}elseif(Test-Path "bin\php\php.exe"){
    
$env:PHPRC ""
    
$binary "bin\php\php.exe"
}else{
    
$binary "php"
}

if(
Test-Path "PocketMine-MP.phar"){
    
$file "PocketMine-MP.phar"
}elseif(Test-Path "src\pocketmine\PocketMine.php"){
    
$file "src\pocketmine\PocketMine.php"
}else{
    echo 
"Couldn't find a valid PocketMine-MP installation"
    
pause
    
exit 1
}

function 
StartServer{
    
$command "powershell " $binary " " $file " --enable-ansi"
    
iex $command
}

$loops 0

StartServer

while($Loop){
    if(
$loops -ne 0){
        echo (
"Restarted " $loops " times")
    }
    
$loops++
    echo 
"To escape the loop, press CTRL+C now. Otherwise, wait 5 seconds for the server to restart."
    
echo ""
    
Start-Sleep 5
    StartServer



Собственно, в качестве ошибки он выдает данную строку из самого кода: echo "Couldn't find a valid PocketMine-MP installation", после чего ругается на "pause".

Никак не могу с этим разобраться. По факту, мне нужно это дело запускать Планировщиком, что я сначала и пытался делать, путем запуска powershell.exe с аргументом -File путь\start.ps1 (что не сработало).

Отправлено: 19:27, 13-10-2017

 

Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


пути в скрипте указаны относительные, поэтому его работа зависит от текущей директории (в интерфейсе Планировщика заданий это называется Рабочая папка)
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:24, 14-10-2017 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да, я уже думал об этом, но тогда почему я не могу вручную через Шелл запустить скрипт указав путь к нему? Ошибка та же, что и в планировщике. К тому планировщик стартует сначала шелл, а потом аргументом прописывается команда на запуск файла по полному пути к файлу. Непонятно все равно.

Отправлено: 16:15, 14-10-2017 | #3


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Neerdex, Что такое текущая директория?
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:56, 14-10-2017 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Токмо второе и десятое сообщения там надо пропускать не глядя, ибо такая мифология…

Отправлено: 20:45, 14-10-2017 | #5


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Busla, спасибо вам за ответы но, если я не ошибаюсь, то вы говорите совсем не о том. Рабочая папка (текущая директория) здесь не при чем - файл прекрасно находится вручную из Шелл и запускается, но выдает ошибку в самом скрипте. Более того, я даже прописал путь к скрипту в переменной среде в PATH - результат тот же, файл находится, скрипт запускается, но выдает ошибку в работе. При этом запуская скрипт напрямую из папки через "ПКМ-Выполнить с помощью powershell" - скрипт прекрасно работает...

Отправлено: 21:23, 14-10-2017 | #6


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Neerdex, ошибаетесь.
Скрипт вам пишет, что не может найти PocketMine.php в подкаталоге той директории, из которой запускаете. Не где скрипт находится, а место в файловой системе, которое вы сейчас рассматриваете, в powershell оно обычно подписано справа от курсора в командной строке.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:11, 15-10-2017 | #7


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Busla, я извиняюсь, но можно как-то более простым языком объяснить, что делать конкретно? Просто я не совсем понимаю, ведь PocketMine.phar находится в той же директории, что и скрипт.

Отправлено: 00:46, 15-10-2017 | #8


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Хм, кажется, я немного продвигаюсь вперед к решению проблемы. Вы, Busla, были правы, простой запуск ps.exe и указание рабочей папки командой cd d:\путь\ и затем start.ps1 - запустило скрипт корректно. Но вот планировщик все никак не хочет слушаться... У меня в нем настроен запуск powershell.ехе, далее в аргументе указываю выполнение команды -command "d:\путь\путь_к_директории_скрипта\" чтобы просто убедиться в правильности первого шага, но шелл выпадает открывается на долю секунды, жалуясь примерно такой ошибкой "в строке начинающейся с cd... отсутствует терминатор бла бла бла" - что-то в этом духе.
Как мне все-таки запустить через планировщик powershell.exe чтобы он выполнил команду cd d:\мой_путь и на этом ждал дальнейших команд?

Отправлено: 01:39, 15-10-2017 | #9


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата Neerdex:
команды -command "d:\путь\путь_к_директории_скрипта\" »
команды собственно и нет - это просто путь к директории

Цитата Neerdex:
что делать конкретно? »
в планировщике, в поле Рабочая папка прописать путь к директории, где лежит ваш скрипт

Цитата Neerdex:
Как мне все-таки запустить через планировщик powershell.exe чтобы он выполнил команду cd d:\мой_путь и на этом ждал дальнейших команд? »
такое поведение не очень предусмотрено
но конкретно cd можно заменить указанием пути в поле "Рабочая папка"
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:43, 15-10-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Проблема с запуском скрипта в powershell

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Проблема с запуском скрипта из SciTE Не флужу AutoIt 6 30-09-2022 16:38
Разное - [решено] проблема с запуском vbs скрипта в win 8.1 sasa74 Microsoft Windows 8 и 8.1 11 23-03-2022 09:29
PowerShell - Создание динамического скрипта для PowerShell AZABAZA Скриптовые языки администрирования Windows 1 18-11-2015 13:52
PowerShell - [решено] обновление скрипта powershell mcintosh55 Скриптовые языки администрирования Windows 2 03-08-2015 11:01
[решено] Проблема с запуском скрипта(.js). Lagos Хочу все знать 22 20-10-2011 20:05




 
Переход