如何从操作系统命令行启动 PowerShell 脚本?

如何从操作系统命令行启动 PowerShell 脚本?

我有一个用于构建项目文件的 PowerShell 脚本,并且我希望能够从文件管理器的命令行运行它(并且,可能为该脚本创建快捷方式,以便我可以从桌面开始构建)
有什么方法可以做到这一点?

答案1

如果您想让 powershell 脚本的行为更像典型的 cmd\bat 脚本,您只需输入名称并让它们执行,您可以设置关联和文件类型来告诉 shell 将正确的参数传递给 Powershell 并设置 patheext 变量,这样您只需输入脚本的名称而不是全名.ext。

首先检查 .ps1 扩展名是否与 Powershell 相关联 - 应该是,但值得确保:

assoc .ps1

您应该得到如下结果:

.ps1=Microsoft.PowerShellScript.1

现在使用 Powershell 命令行语法调用脚本来覆盖此文件类型的默认打开行为(使用记事本打开)。我们需要在参数 &1 周围添加额外的引号来处理带有空格的路径。

ftype Microsoft.PowerShellScript.1="c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe" "& '&1'"

如果你确实希望 Powershell 脚本像其他脚本文件一样运行,那么可以修改路径文本环境变量。理想情况下,通过“我的电脑”->“属性”->“高级系统设置”->“高级选项卡”->“环境变量”进行设置,但您也可以通过以下方式在 cmd shell 中临时设置:

set pathext=.ps1;%pathext%

答案2

一种方法是使用适当的命令创建一个批处理文件。

构建脚本

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -command "&'c:\scripts\build_project.ps1' "

如果您的 ps 脚本使用命令行参数,则必须将批处理文件中的命令行参数传递给脚本。您还必须加载脚本使用的所有 powershell 模块:

Add-PSSnapin 模块名称

相关内容