Как запустить скрипт powershell из файла .ps1? - PullRequest
1 голос
/ 23 октября 2019

Я пытаюсь автоматизировать выполнение простого сценария PS (чтобы удалить определенный файл .txt). Очевидно, я новичок в powershell :) Когда я запускаю код в оболочке, он работает безупречно. Но когда я сохраняю код как .ps1 и дважды щелкаю по нему (или выполняю его удаленно), он просто всплывает в окне и ничего не делает.

Я пытался сохранить код как .batфайл и выполнить его в командной строке Windows, но он ведет себя так же: работает, кодируя непосредственно по приглашению, но не работает, выполняя файл .bat.

$Excel = New-Object -ComObject Excel.Application
$Workbook = $Excel.Workbooks.Open('H:\codes\test1.xlsm')
$workSheet = $Workbook.Sheets.Item(2)
$str_name = $WorkSheet.Cells.Item(2,1).Text
Remove-Item -Path "H:\text files\$str_name.txt" -Force

Я ожидал, что он будет работать в два раза- щелкнув по нему, так же как и при запуске в оболочке или в командной строке, но я не могу понять, почему это не так.

Ответы [ 2 ]

2 голосов
/ 23 октября 2019

Создайте командный файл, который указывает на ваш файл .ps1. От вас может потребоваться запустить командный файл с повышенными разрешениями, в зависимости от ваших уровней доступа (вошедшая в систему учетная запись будет использоваться для выполнения).

Например:

Powershell.exe -executionpolicy remotesigned -File  "C:\Path\script.ps1"

Если это все еще не работает, пожалуйста, запустите ваш пакетный файл через CMD (скопируйте путь, заключенный в кавычки, в CMD) и дайте мне знатьответ.

1 голос
/ 23 октября 2019

Существует несколько способов запуска файла .ps1. Самый простой способ - щелкнуть правой кнопкой мыши по файлу и запустить «Run with PowerShell».

Как и другие, вы также можете запустить файл .ps1 с помощью powershell.exe либо в командной строке, либо из файла BATCH или CMD. ,Следующее:

powershell.exe -File C:\Script.ps1

Если у вас все еще есть проблемы, это может быть политика выполнения. Для этого просто добавьте -ExecutionPolicy Bypass к вашей команде следующим образом:

powershell.exe -File C:\Script.ps1 -ExecutionPolicy Bypass

Чтобы изменить политику выполнения, вы можете использовать:

Set-ExecutionPolicy

Надеюсь, это поможет.

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