通过powershell命令将powershell脚本放在路径上。

时间:2016-08-04 19:52:35

标签: powershell cmd powershell-v2.0 command-prompt powershell-v3.0

我有一个powershell脚本,我希望通过将它放在路径中从cmd / ps任何位置运行。 什么是可以实现的命令?

我基本上都在寻找一个类似于将脚本放在bashrc中的UNIX,因此可以从任何地方运行。

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

1 个答案:

答案 0 :(得分: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脚本作为可执行文件处理。通常,可以通过调用以下命令从cmd执行脚本:

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

如果这是不可接受的"对你来说,最简单的方法是创建一个bat脚本和你的ps1脚本(相同的路径)并添加以下内容:

Script.bat(假设您在同一文件夹中有Script.ps1):

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

这将创建在cmd中的任何位置调用脚本所需的包装器,因为可以从cmd执行批处理文件