Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows .bat文件中的管道分隔符_Windows_Batch File_Google Bigquery_Command Line Arguments - Fatal编程技术网

Windows .bat文件中的管道分隔符

Windows .bat文件中的管道分隔符,windows,batch-file,google-bigquery,command-line-arguments,Windows,Batch File,Google Bigquery,Command Line Arguments,我正在尝试使用bat文件中的bq命令将一个表从BigQuery导出到Google云存储(GCS)。该命令有一个参数要导出为管道分隔文件。该命令在CLI中正常工作,但当我使用call命令从bat文件运行时,它会打开该命令,但不会执行该命令。注意:在不使用管道分隔符参数的情况下运行相同的操作 知道为什么吗 call bq extract -F^^^| my-project:my-dataset.mytable gs://myfolder/myfile.csv 这是我的bat文件中唯一的一行。当我从

我正在尝试使用bat文件中的
bq
命令将一个表从BigQuery导出到Google云存储(GCS)。该命令有一个参数要导出为管道分隔文件。该命令在CLI中正常工作,但当我使用
call
命令从bat文件运行时,它会打开该命令,但不会执行该命令。注意:在不使用管道分隔符参数的情况下运行相同的操作

知道为什么吗

call bq extract -F^^^| my-project:my-dataset.mytable gs://myfolder/myfile.csv
这是我的bat文件中唯一的一行。当我从命令行运行时,它可以工作:

C:\bq extract -F^^^| my-project:my-dataset.mytable gs://myfolder/myfile.csv
输出:

正在等待bqjob\u r01419067\uuu00000169eed1d868\u 1。。。(0s)当前状态:完成

当我运行bat文件时,
C:\test.bat

输出:

C:\bq extract-F^|我的项目:my-dataset.mytable gs://myfolder/myfile.csv C:\

如果解决方案正确,您应该能够将批处理文件代码更改为此

set "caret=^"
call bq extract -F"%%CARET%%|" my-project:my-dataset.mytable gs://myfolder/myfile.csv
如果解决方案正确,您应该能够将批处理文件代码更改为此

set "caret=^"
call bq extract -F"%%CARET%%|" my-project:my-dataset.mytable gs://myfolder/myfile.csv

你为什么用电话?为什么要三次转义管道分隔符?在我使用的一些程序中,只需引用您想要使用的分隔符即可<代码>-F“|”。使用CALL将使命令中的所有插入符号加倍。我还将尝试
-F“^ |”
Hi@Squashman,我使用CALL是因为我有更多的命令要添加,如果我不使用它,则在第一个命令后停止处理。引号无效您是否尝试过
-F“^ |”
?我找到了另一个说可以工作的。是的,它可以从命令行工作,但不能从bat文件工作。C:\Users\myfolder>CALL bq extract-F“^|”我的项目:mydataset.mytable gs://myfolder/Fact.csv文件名、目录名或卷标语法不正确。为什么使用CALL?为什么要三次转义管道分隔符?在我使用的一些程序中,只需引用您想要使用的分隔符即可<代码>-F“|”。使用CALL将使命令中的所有插入符号加倍。我还将尝试
-F“^ |”
Hi@Squashman,我使用CALL是因为我有更多的命令要添加,如果我不使用它,则在第一个命令后停止处理。引号无效您是否尝试过
-F“^ |”
?我找到了另一个说可以工作的。是的,它可以从命令行工作,但不能从bat文件工作。C:\Users\myfolder>CALL bq extract-F“^|”我的项目:mydataset.mytable gs://myfolder/Fact.csv文件名、目录名或卷标语法不正确。