如何从.bat在新窗口中启动PowerShell并在不退出控制台的情况下运行.ps1?

时间:2016-03-20 10:06:57

标签: powershell batch-file

我想要一个.bat文件

  • 在新窗口中打开PowerShell控制台
  • 并运行.ps1脚本
  • 并且不会退出并关闭PowerShell控制台。

我的批处理文件包含以下行:

start powershell.exe -Command "&'D:\MyToolkit\ToolKit.ps1'"

但是,它会在运行脚本后关闭PowerShell。

有什么建议吗? 感谢

2 个答案:

答案 0 :(得分:11)

start powershell -noexit -file "D:\MyToolkit\ToolKit.ps1"

另外,

-Command更改为-File,因为这是您需要的

答案 1 :(得分:4)

不仅仅是这个问题的原始海报,而且对于那些可能在这里寻找答案的人来说,帮助系统非常有用,而且似乎经常被忽视。

使用命令/?或在PowerShellget-helpget-help -full命令都是有用的。

通过阅读您想要运行的命令的帮助,您可能已经回答了自己的问题,在这种情况下powershell

PowerShell[.exe] [-PSConsoleFile <file> | -Version <version>]
    [-NoLogo] [-NoExit] [-Sta] [-Mta] [-NoProfile] [-NonInteractive]
    [-InputFormat {Text | XML}] [-OutputFormat {Text | XML}]
    [-WindowStyle <style>] [-EncodedCommand <Base64EncodedCommand>]
    [-File <filePath> <args>] [-ExecutionPolicy <ExecutionPolicy>]
    [-Command { - | <script-block> [-args <arg-array>]
                  | <string> [<CommandParameters>] } ]

PowerShell[.exe] -Help | -? | /?

-NoExit
    Does not exit after running startup commands.

...

-File
    Runs the specified script in the local scope ("dot-sourced"), so that the
    functions and variables that the script creates are available in the
    current session. Enter the script file path and any parameters.
    File must be the last parameter in the command, because all characters
    typed after the File parameter name are interpreted
    as the script file path followed by the script parameters.
  

-NoExit - 运行启动命令后不退出。

     

-File - ...文件必须是命令中的最后一个参数...