0

我有一个名为 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 运行?

4

2 回答 2

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.batgenerateSshKey.bat仍在运行时启动它就可以工作。

于 2013-07-30T23:17:13.600 回答
0

当您想要返回到调用脚本时,您不应该使用阻止它返回的选项运行 PowerShell。从. -noe_generateSshKey.bat

-NoExit
    Does not exit after running startup commands.
于 2013-07-30T10:08:52.367 回答