i have controller batch file named oneclick.bat, code as below:
rem batch controller
rem wait for email input for ssh key generation...
rem call copyEnv.bat
call generateSshKey.bat %1
call gitClone.bat
in generateSshKey.bat, i start a powershell script like this:
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
and then gitClone.bat did not run in the command window
how can i get the gitClone.bat run?
When you want to return to a calling script you shouldn't run PowerShell with an option that prevents it from returning. Remove -noe
from the last line of generateSshKey.bat
.
-NoExit
Does not exit after running startup commands.
As Ansgar Wiechers pointed out, the -noe (short for -NoExit ) is keeps the PowerShell session open, so generateSshKey.bat doesn't exit, and oneclick.bat doesn't get past the line that called it.
If you specifically want the powershell session that runs SetSSHKeytoServer.ps1 to remain active (since you used the -noe switch the second time but not the first time, I'm inferring that this was deliberate), you could change
call generateSshKey.bat %1
to
start generateSshKey.bat %1
Note that this means that oneclick.bat won't wait for generateSshKey.bat to finish before calling gitClone.bat , so if you need to run them in sequence, this won't work. It will work as long as it's okay for gitClone.bat to start while generateSshKey.bat is still running.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.