我有一个名为oneclick.bat的控制器批处理文件,代码如下:
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脚本,如下所示:
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?
发布于 2013-07-30 10:08:52
当您想返回到一个调用脚本时,不应该使用阻止它返回的选项来运行PowerShell。从-noe的最后一行中删除generateSshKey.bat。
-NoExit
Does not exit after running startup commands.发布于 2013-07-30 23:17:13
正如Ansgar Wiechers所指出的,generateSshKey.bat -noe (-NoExit的缩写)是保持PowerShell会话打开的,这样PowerShell就不会退出,oneclick.bat也不会越过调用它的线路。
如果您特别希望运行SetSSHKeytoServer.ps1的powershell会话保持活动状态(因为您第二次但不是第一次使用-noe开关,我推断这是故意的),您可以更改
call generateSshKey.bat %1至
start generateSshKey.bat %1请注意,这意味着oneclick.bat不会在调用gitClone.bat,之前等待generateSshKey.bat完成,因此如果您需要按顺序运行它们,这将无法工作。只要gitClone.bat可以在generateSshKey.bat还在运行时启动,它就能工作。
https://stackoverflow.com/questions/17943711
复制相似问题