我有一个名为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?
答案 0 :(得分:0)
如果要返回调用脚本,则不应使用阻止其返回的选项运行PowerShell。从-noe
的最后一行删除generateSshKey.bat
。
-NoExit
Does not exit after running startup commands.
答案 1 :(得分:0)
正如Ansgar Wiechers所指出的, -noe ( -NoExit 的缩写)会使PowerShell会话保持打开状态,因此 generateSshKey.bat 不退出, oneclick.bat 没有超过调用它的行。
如果您特意想要运行 SetSSHKeytoServer.ps1 的powershell会话保持活动状态(因为您第二次使用 -noe 切换但不是第一次,我推断这是故意的,你可以改变
call generateSshKey.bat %1
到
start generateSshKey.bat %1
请注意,这意味着 oneclick.bat 在调用 gitClone.bat 之前不会等待 generateSshKey.bat 完成,所以如果你需要按顺序运行它们,这是行不通的。只要 gitClone.bat 在 generateSshKey.bat 仍在运行时启动它就可以正常工作。