0

问题

我有以下批处理文件(见下文),在我自己的计算机上成功运行。它运行使用 GooeyParser 编译的 Python 可执行文件,通过临时文本文件将一些变量传递给批处理脚本,然后使用Google Dev Console将文件上传到 GSC 然后 BigQuery。

在我同事的计算机上,批处理脚本在gsutil命令后停止运行。没有错误消息,脚本只是停止运行。

各个命令在他的计算机上成功运行。

有谁知道为什么批处理脚本可能只能部分运行?

批处理文件

::spawns as a subprocess to avoid console window closing and losing error messages
if not defined in_subprocess (cmd /k set in_subprocess=y ^& %0 %*) & exit )

::python script writes out file location to temporary file
"BQ Single File Upload - dont run by itself.exe"
SET /p FILEUPLOAD=<temp_file_path
SET /p FILENAME=<temp_filename
SET /p DATASET=<temp_dataset
SET /p TABLE=<temp_table
SET /p SCHEMA=<temp_schema
DEL temp_file_path
DEL temp_filename
DEL temp_dataset
DEL temp_table
DEL temp_schema

gsutil cp %FILEUPLOAD% "gs://our_data/%FILENAME%"

cmd.exe /c bq mk %DATASET%

bq load --max_bad_records=5 --skip_leading_rows=1 --allow_quoted_newlines --schema %SCHEMA% %DATASET%%TABLE% "gs://our_data/%FILENAME%"
PAUSE
4

1 回答 1

0

添加电话,(谢谢@Mofi)。这是最终脚本,现在可以在我们的两台计算机上运行。

::spawns as a subprocess to avoid console window closing and losing error messages
if not defined in_subprocess (cmd /k set in_subprocess=y ^& %0 %*) & exit )

::python script writes out file location to temporary file
"BQ Single File Upload - dont run by itself.exe"
SET /p FILEUPLOAD=<temp_file_path
SET /p FILENAME=<temp_filename
SET /p DATASET=<temp_dataset
SET /p TABLE=<temp_table
SET /p SCHEMA=<temp_schema
DEL temp_file_path
DEL temp_filename
DEL temp_dataset
DEL temp_table
DEL temp_schema

call gsutil cp %FILEUPLOAD% "gs://our_data/%FILENAME%"

call cmd.exe /c bq mk %DATASET%

call bq load --max_bad_records=5 --skip_leading_rows=1 --allow_quoted_newlines --schema %SCHEMA% %DATASET%%TABLE% "gs://our_data/%FILENAME%"
PAUSE
于 2016-11-30T17:06:20.573 回答