如何"打开"在批处理文件中

时间:2017-03-08 22:08:53

标签: windows powershell

我有一个Windows powershell脚本,可以在服务器上提供给我的用户。我不希望他们必须出去找到PS脚本,右键单击并单击"运行PowerShell"或者用"打开#34;。 Windows(至少Win 7)默认程序是记事本。

我想制作批处理文件来执行此操作。我试过了:

start "c:\myfile.ps1" powershell.exe

以及其他一些变体,但我所能做的就是启动PowerShell,或者在默认程序记事本中打开我的文件。

任何建议表示赞赏!谢谢!

奖金问题:如果我以管理员身份运行我的批处理文件,它还会以管理员身份运行我的PS脚本吗?

1 个答案:

答案 0 :(得分:6)

只需在批处理文件中使用PowerShell.exe的-file参数:

PowerShell.exe -file c:\MyFile.ps1

此外,某些用户可能会将其执行策略设置为限制脚本执行的内容,因此您可能希望执行以下操作:

PowerShell.exe -ExecutionPolicy Bypass -file c:\MyFile.ps1

如果您想使用start启动它,您可以按照Ansgar Wiechers的说明进行操作:

start "" PowerShell.exe -ExecutionPolicy Bypass -file c:\MyFile.ps1

有关使用start的一些注意事项:默认情况下,它将在单独的窗口中启动PowerShell,并继续执行批处理文件的其余部分,而无需等待PowerShell窗口关闭。如果这是不可取的,你有两个选择。您可以在继续批处理文件之前指定等待PowerShell窗口关闭的/wait,或者您可以使用/ B选项将无法打开新窗口,并将在当前控制台窗口中执行PowerShell。 / p>

最后,如果你的批处理文件是在Administrator上下文下运行的,那么PowerShell也是如此。