我有一个powershell脚本,我希望通过将它放在路径中从cmd / ps任何位置运行。 什么是可以实现的命令?
我基本上都在寻找一个类似于将脚本放在bashrc中的UNIX,因此可以从任何地方运行。
echo 'export PATH=$PATH:/path/to/script' >> ~/.bashrc && source ~/.bashrc
答案 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执行批处理文件