我有一个多行SQL代码,我希望将一个包含多行的列存储到一个变量中。有人可以帮我这个吗? 我是批处理和学习的新手,但这是我遇到困难的事情。
下面是批处理的SQl查询:
SQl查询: 选择电子邮件,用户名 来自table1,table2,table3 table1.id = table2.id 和table1.id = table3.id 和table1.somefilter 和table2.somefilter; 我将其输出存储到一个文件夹中,该文件夹在下面表示为" C:\ filelocation"
psql -d Database -p 8000 -U username -t -A -f C:\ filelocation -o" C:\ text.txt"
输出: abc@abc.com abc xyz@abc.com xyz
这是一个电子邮件地址及其相关用户名列表。所以,我想把它们放在变量中。
我正在使用-f,因为它是一个包含2个不同列和多行的多行sql查询。
我已经设法将查询的输出放到一个文件夹中,但我真正想要的是我想将它们循环到变量中。
由于
答案 0 :(得分:1)
我想输出应该是
Range.ListFormat.ListString
您只需按
中的方式解析输出文件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= "