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