gpt4 book ai didi

postgresql - 如何使用Windows批处理将postgresql查询的输出循环到变量中

转载 作者:行者123 更新时间:2023-11-29 13:19:49 27 4
gpt4 key购买 nike

我有一个多行 SQL 代码,我想将具有多行的单个列存储到一个变量中。有人可以帮我吗?我是批处理和学习的新手,但这是我遇到的困难。

这是我的批处理 SQL 查询的样子:

SQL查询:选择邮箱,用户名来自表 1、表 2、表 3其中 table1.id = table2.id和 table1.id=table3.id和 table1.somefilter和 table2.somefilter;我将相同的输出存储到一个文件夹中,该文件夹在下面表示为“C:\filelocation”

psql -d 数据库 -p 8000 -U 用户名 -t -A -f C:\filelocation -o "C:\text.txt"

输出:abc@abc.com 美国广播公司xyz@abc.com xyz

所以这是电子邮件地址及其相关用户名的列表。所以,我想把它们放在一个变量中。

我正在使用 -f,因为它是一个包含 2 个不同列和多个行的多行 sql 查询。

我已经设法将查询的输出放到一个文件夹中,但我真正想要的是我想将它们循环到一个变量中。

谢谢

最佳答案

我想输出应该是

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=,"

关于postgresql - 如何使用Windows批处理将postgresql查询的输出循环到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44007356/

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