为什么我不能使用 gcloud 的批处理文件连续 运行 2 个命令

Why can't I run 2 commands consecutively using batch file for gcloud

所以我有这个 .bat 文件:

@echo off
cd C:\Users\user\Downloads
gcloud auth activate-service-account --key-file=keyFileName.json
gcloud auth print-access-token
pause

在第一个 gcloud 命令,它会突然中途崩溃命令提示符,但是当我手动将每一行复制并粘贴到命令提示符中与我尝试的位置相同的位置时 cd.bat 文件,它有效...知道为什么吗?顺便说一下,我在 Windows 10。

在 Google 上搜索,我在 Github and Whosebug 上发现了两个相关问题。

Github 的解决方案是使用 python,这不是我需要的,而 Whosebug 的解决方案没有任何人帮助 him/her...

谢谢

当 运行 执行一些 gcloud 命令时,它们期望它们可能正在与用户交互。此外,它们可能与当前命令行处理器(Windows 上的 CMD)进行不利交互。这会导致命令行处理器过早结束。一种解决方案是 运行 您的脚本 gcloud 命令在它们自己的本地/嵌套命令行处理器实例中。

如果今天,您的脚本包含:

gcloud ... some command parameters ...

将其替换为:

cmd /c gcloud ... some command parameters ...

这将导致 gcloud 命令在其自己的嵌套环境中 运行,不会干扰顶级(脚本)环境。

您也可以只在每条命令前加上CALL,例如:

CALL gcloud app deploy
CALL gcloud app describe