0

У меня есть сценарий powershell, который я хочу запустить из cmd/ps в любом месте, поместив его в путь. Какая команда может это достичь?поместите скрипт powershell на путь через команды powershell.

В основном я ищу эквивалент UNIX для размещения вашего скрипта в bashrc и, следовательно, доступного из любого места для запуска.

echo 'export PATH=$PATH:/path/to/script' >> ~/.bashrc && source ~/.bashrc 
+1

Возможный дубликат [Где Windows PowerShell задает $ profile?] (Http://stackoverflow.com/questions/7621872/where-does-windows-powershell-set-profile) – TessellatingHeckler

ответ

1

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

Вы можете сделать следующее, что должно быть эквивалентно предполагается, что вы используете только Powershell:

$newPath = "c:\tmp\MyScriptPath"; 
[Environment]::SetEnvironmentVariable('PATH', "$($env:Path);$newPath", [EnvironmentVariableTarget]::User); 
# Update the path variable in your current session; next time it's loaded directly 
$env:Path = "$($env:Path);$newPath"; 

Вы можете выполнить скрипт непосредственно в Powershell только с именем сценария.

Однако _: это не будет работать под cmd, потому что cmd не знает, как обрабатывать скрипт ps1 как исполняемый файл. Обычно можно было бы выполнить сценарий из ЦМД, вызвав следующий:

Powershell.exe -executionpolicy remotesigned -File C:\Tmp\Script.ps1 

Если это «неприемлемо» для вас, самый простой способ для создания летучей мыши сценарий вместе с вашим ps1 сценарий (тот же самый путь) и добавить следующее содержание:

script.bat (Если у вас есть Script.ps1 в той же папке):

@ECHO OFF 
PowerShell.exe -Command "& '%~dpn0.ps1'" 
PAUSE 

Это позволит создать оболочку, необходимую для вызова скрипта в любом месте ЦМД, как командные файлы могут быть выполнены из cmd

+0

Пробовал маршрут файла bat, но он жалуется: powershell.exe: Термин «powershell.exe» не распознается как имя командлета, функции, файла сценария, ... – Scooby