如何使用windows批处理将postgresql查询的输出循环到变量中
我有一个多行SQL代码,我想将一列多行存储到一个变量中。有人能帮我吗? 我对批处理和学习是新手,但这是我发现的困难 以下是我的SQl批查询的外观: SQl查询: 选择电子邮件、用户名 来自表1、表2、表3 其中table1.id=table2.id 表1.id=表3.id 和表1.1 和表2.1; 我将其输出存储到一个文件夹中,该文件夹在下面表示为“C:\filelocation” psql-d数据库-p8000-U用户名-t-A-f C:\filelocation-o“C:\text.txt” 输出: abc@abc.comabc xyz@abc.comxyz 这是一个电子邮件地址及其相关用户名的列表。所以,我想把它们放在一个变量中 我使用-f,因为它是一个多行sql查询,有两个不同的列和多行 我已经设法将查询的输出放入一个文件夹中,但我真正想要的是将它们循环到一个变量中如何使用windows批处理将postgresql查询的输出循环到变量中,postgresql,batch-file,batch-processing,Postgresql,Batch File,Batch Processing,我有一个多行SQL代码,我想将一列多行存储到一个变量中。有人能帮我吗? 我对批处理和学习是新手,但这是我发现的困难 以下是我的SQl批查询的外观: SQl查询: 选择电子邮件、用户名 来自表1、表2、表3 其中table1.id=table2.id 表1.id=表3.id 和表1.1 和表2.1; 我将其输出存储到一个文件夹中,该文件夹在下面表示为“C:\filelocation” psql-d数据库-p8000-U用户名-t-A-f C:\filelocation-o“C:\text.txt”
谢谢我想输出应该是
abc@abc.com abc
xyz@abc.com xyz
...
您只需要像中一样解析输出文件
for /f "tokens=1,2 delims= " %%a in (C:\text.txt) do (
echo(Email address is: %%a
echo(Username is: %%b
)
或者,如果你想把它们变成变量
setlocal enabledelayedexpansion
rem grab fields into variables
set /a counter=0
for /f "tokens=1,2 delims= " %%a in (C:\text.txt) do (
set /a counter+=1
set "eMail_!counter!=%%a"
set "uName_!counter!=%%b"
)
rem process them
for /L %%i in (1,1,!counter!) do (
rem whatever you wanna do
echo(Email address is: !eMail_%%i!
echo(Username is: !uName_%%i!
)
Endlocal
如果每一对都在一行中,并且两行之间有一个空格,如果分隔符是逗号,只需更改
“tokens=1,2 delims=“
至”tokens=1,2 delims=,“
请发布一个关于输出方式的示例,以及您想要检索的信息,以便我们可以帮助您。我们没有一个水晶球来猜测你到底想要实现什么!嘿,elzooilogico,我希望这有帮助。我很抱歉没有提供所需的所有细节。感谢您提供的解决方案!!干杯