首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在批处理脚本中运行powershell脚本和批处理脚本?

如何在批处理脚本中运行powershell脚本和批处理脚本?
EN

Stack Overflow用户
提问于 2013-07-30 09:50:12
回答 2查看 1.5K关注 0票数 0

我有一个名为oneclick.bat的控制器批处理文件,代码如下:

代码语言:javascript
复制
rem batch controller
rem wait for email input for ssh key generation...
rem call copyEnv.bat
call generateSshKey.bat %1
call gitClone.bat

在generateSshKey.bat中,我启动一个powershell脚本,如下所示:

代码语言:javascript
复制
rem make sure powershell is able to run 
powershell.exe  set-executionpolicy remotesigned

rem start powershell and add ssh key to the server by ui aotumation
powershell.exe -noe -file SetSSHKeytoServer.ps1

然后gitClone.bat没有在命令窗口中运行。

我怎样才能运行gitClone.bat?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-30 10:08:52

当您想返回到一个调用脚本时,不应该使用阻止它返回的选项来运行PowerShell。从-noe的最后一行中删除generateSshKey.bat

代码语言:javascript
复制
-NoExit
    Does not exit after running startup commands.
票数 0
EN

Stack Overflow用户

发布于 2013-07-30 23:17:13

正如Ansgar Wiechers所指出的,generateSshKey.bat -noe (-NoExit的缩写)是保持PowerShell会话打开的,这样PowerShell就不会退出,oneclick.bat也不会越过调用它的线路。

如果您特别希望运行SetSSHKeytoServer.ps1的powershell会话保持活动状态(因为您第二次但不是第一次使用-noe开关,我推断这是故意的),您可以更改

代码语言:javascript
复制
call generateSshKey.bat %1

代码语言:javascript
复制
start generateSshKey.bat %1

请注意,这意味着oneclick.bat不会在调用gitClone.bat,之前等待generateSshKey.bat完成,因此如果您需要按顺序运行它们,这将无法工作。只要gitClone.bat可以在generateSshKey.bat还在运行时启动,它就能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17943711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档