如何让Powershell运行批处理文件然后保持打开状态?

时间:2008-08-18 08:00:16

标签: powershell batch-file

例如;使用旧的命令提示符,它将是:

cmd.exe /k mybatchfile.bat

3 个答案:

答案 0 :(得分:28)

放入cmd实例(或者实际上是PowerShell本身)并输入:

powershell -?

你会看到powershell.exe有一个“-noexit”参数,告诉它在执行“启动命令”后不要退出。

答案 1 :(得分:7)

运行PowerShell.exe时,只需提供 -NoExit 开关,如下所示:

PowerShell -NoExit -File "C:\SomeFolder\SomePowerShellScript.ps1"

PowerShell -NoExit -Command "Write-Host 'This window will stay open.'"

或者如果你想运行一个文件,然后运行命令并让窗口保持打开状态,你可以这样做:

PowerShell -NoExit "& 'C:\SomeFolder\SomePowerShellScript.ps1'; Write-Host 'This window will stay open.'"

如果未提供,则隐含 -Command 参数,此处我们使用& 来调用PowerShell脚本和; 分离PowerShell命令。

此外,在my blog post的底部,我显示了一个快速的注册表更改,以便在执行脚本/命令后始终保持PowerShell保持打开状态,这样您就不需要始终显式提供-NoExit一直切换。

答案 2 :(得分:-1)

我相信你已经想到了这一点,但我只是发布了它

$CreateDate = (Get-Date -format 'yyyy-MM-dd hh-mm-ss')

$RemoteServerName ="server name"
$process = [WMICLASS]"\\$RemoteServerName\ROOT\CIMV2:win32_process"  
$result = $process.Create("C:\path to a script\test.bat") 
$result | out-file -file "C:\some path \Log-$CreatedDate.txt"