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

coi*_*ird 5 windows powershell

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

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

start "c:\myfile.ps1" powershell.exe
Run Code Online (Sandbox Code Playgroud)

以及其他一些变体,但我所能做的就是启动powershell,或者在默认程序notepad中打开我的文件.

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

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

The*_*ian 6

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

PowerShell.exe -file c:\MyFile.ps1
Run Code Online (Sandbox Code Playgroud)

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

PowerShell.exe -ExecutionPolicy Bypass -file c:\MyFile.ps1
Run Code Online (Sandbox Code Playgroud)

如果您想使用start它来启动它,您可以这样做,因为Ansgar Wiechers通过运行注意到:

start "" PowerShell.exe -ExecutionPolicy Bypass -file c:\MyFile.ps1
Run Code Online (Sandbox Code Playgroud)

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

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

  • 值得注意的是,`start`在新窗口中启动程序,而直接调用`powershell.exe`将在当前(控制台)窗口中运行解释器. (2认同)