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

wol*_*avi 3 batch-file google-cloud-sdk

所以我有这个 .bat 文件:

@echo off
cd C:\Users\user\Downloads
gcloud auth activate-service-account --key-file=keyFileName.json
gcloud auth print-access-token
pause
Run Code Online (Sandbox Code Playgroud)

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

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

Github 的解决方案是使用 python,这不是我需要的,而 Stackoverflow 的解决方案没有人帮助他/她......

谢谢

Kol*_*ban 6

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

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

gcloud ... some command parameters ...
Run Code Online (Sandbox Code Playgroud)

将其替换为:

cmd /c gcloud ... some command parameters ...
Run Code Online (Sandbox Code Playgroud)

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