gpt4 book ai didi

windows - 使用 BAT 文件的 BIG Query 命令

转载 作者:行者123 更新时间:2023-12-05 00:43:13 25 4
gpt4 key购买 nike

echo Give yearmonth "yyyyMM"
setlocal enabledelayedexpansion
SET /p yearmonth=
SET ClientName[0]=abc
SET ClientName[1]=def

SET i = 0

:myLoop
if defined ClientName[%i%] (
call bq query --use_legacy_sql=false "CREATE EXTERNAL TABLE `test.!ClientName[%%i]!.%yearmonth%` OPTIONS (format = 'CSV',skip_leading_rows = 1 uris = ['gs://test/!ClientName[%%i]!/AWS/%yearmonth%/Metrics/data/*.csv'])"
set /a "i+=1"
GOTO :myLoop

)

嗨,我正在尝试创建一个批处理,以便我可以一次运行多个 BIG QUERY。上面我尝试编写一个批处理脚本,将命令放入循环中。

我正在尝试使用 yearmonth 作为用户输入来创建表,然后创建数组以创建具有不同客户端名称的表。

  1. 但如果 i =0 ClientName[i] = abc 在调用查询中我无法打印,我正在使用 !ClientName[%%i]! 打印但它不起作用.

  2. 当我执行 bat 文件时,循环内的调用查询未在 GCP 控制台中运行。

你能帮我解决这个问题吗

最佳答案

  1. 将变量设置 为独立的字母字符(如i)是不好的做法。一个原因与您所经历的完全一样,您将 for 元变量 %%iset 变量 %i%.

  2. 您正在循环中展开,但没有启用elayedexpansion,所以有两种方法,我们稍后会介绍。

  3. setting 变量在 = 之前或之后不应有空格,不包括 set/a

    之类的

所以,方法 1,没有 delayedexpansion (注意变量是如何在循环中通过 call 命令与双 %% 一起使用的) .

@echo off
echo Give yearmonth "yyyyMM"
SET /p yearmonth=
SET ClientName[0]=abc
SET ClientName[1]=def

SET num=0

:myLoop
if defined ClientName[%num%] (
call bq query --use_legacy_sql=false "CREATE EXTERNAL TABLE `test.%%ClientName[%num%]%%.%yearmonth%` OPTIONS (format = 'CSV',skip_leading_rows = 1 uris = ['gs://test/%%ClientName[%num%]%%/AWS/%yearmonth%/Metrics/data/*.csv'])"
set /a num+=1
GOTO :myLoop

)

方法2:(更好的方法使用delayedexpansion)

@echo off
setlocal enabledelayedexpansion
echo Give yearmonth "yyyyMM"
SET /p yearmonth=
SET ClientName[0]=abc
SET ClientName[1]=def

SET num=0

:myLoop
if defined ClientName[%num%] (
call bq query --use_legacy_sql=false "CREATE EXTERNAL TABLE `test.!ClientName[%num%]!.%yearmonth%` OPTIONS (format = 'CSV',skip_leading_rows = 1 uris = ['gs://test/!ClientName[%num%]!/AWS/%yearmonth%/Metrics/data/*.csv'])"
set /a num+=1
GOTO :myLoop

)

关于windows - 使用 BAT 文件的 BIG Query 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70640411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com