【问题标题】:put a powershell script on path through powershell commands.通过 powershell 命令将 powershell 脚本放在路径上。
【发布时间】:2016-12-11 02:30:10
【问题描述】:

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

我基本上是在寻找一个 UNIX 等价物,将你的脚本放在 bashrc 中,因此可以从任何地方运行。

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

【问题讨论】:

标签: powershell cmd powershell-2.0 command-prompt powershell-3.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 执行批处理文件

【讨论】:

  • 尝试了 bat 文件路径,但它抱怨:powershell.exe : 术语“powershell.exe”未被识别为 cmdlet、函数、脚本文件的名称......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-01
  • 2017-02-20
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多