【问题标题】:Automating google cloud SDK installation on windows, GCLOUD is not recognized as an internal or external command在 Windows 上自动安装谷歌云 SDK,GCLOUD 不被识别为内部或外部命令
【发布时间】:2017-11-08 23:56:36
【问题描述】:

我正在使用以下批处理文件下载并解压缩 google-cloud-sdk,

文件名:download.bat

set home=%USERPROFILE%
echo %home%
%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -Command "(New-Object Net.WebClient).DownloadFile('https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-179.0.0-windows-x86_64-bundled-python.zip', '%home%/google-cloud-sdk.zip');& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('%home%/google-cloud-sdk.zip', '%home%/google-cloud-sdk'); }"

我正在使用以下批处理文件在 Windows 上静默安装 SDK,

文件名:install_win.bat

call %USERPROFILE%\google-cloud-sdk\google-cloud-sdk\install.bat --path-update=true --usage-reporting=false --command-completion=false

当我尝试使用以下命令从另一个批处理文件授权我的服务帐户时成功完成这些步骤后,

gcloud auth activate-service-account --key-file {json fila path}

它失败并告诉我 glcoud 无法识别内部或外部命令。

谁能帮我解决这个错误? 我认为该错误是因为 Windows 中缺少 SDK 的 bin 文件的环境变量。 如何从批处理文件中设置?

【问题讨论】:

    标签: windows batch-file google-cloud-platform gcloud


    【解决方案1】:

    ...cloud...\install.bat 例程是called,因此它继承了调用例程的环境。它不会将任何更改传回调用例程。

    由于我假设 install.bat 是由第 3 方提供的,因此无法更改,因此您需要为 当前 cmd 实例检索新的 path .

    call %USERPROFILE%\...\install.bat ...
    FOR /f "delims=" %%a IN ('echopath') DO SET "newpath=%%a"
    

    echopath.bat 只是一行:

    echo %path%
    

    如果 echopath.bat 是可访问的 - 它必须是一个单独的文件,而不是内部例程 - 应该返回新路径(在这种情况下是 newpath - 我会让你猜猜您需要进行哪些更改才能将其更改为 path...)

    由于执行 external 批处理会重新加载环境,修改后的环境 path 将由 echopath 报告并因此分配给指定的变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 2020-09-05
      • 2012-02-03
      • 2018-04-16
      • 2021-09-15
      • 2021-02-08
      相关资源
      最近更新 更多