我想从我们的 HP ALM QC 安装中检索所有用户,并有一个执行此操作的 Powershell 脚本。问题是它用空格填充输出,我认为,使其更具可读性。
这是脚本
$ServerInstance = "qc-server "
$Database = "qcsiteadmin_db "
$ConnectionTimeout = 30
$Query = "select USER_NAME, FULL_NAME, EMAIL from [td].USERS"
$QueryTimeout = 120
$conn=new-object System.Data.SqlClient.SQLConnection
$ConnectionString = "Server={0};Database={1};Integrated Security=True;Connect Timeout={2}" -f $ServerInstance,$Database,$ConnectionTimeout
$conn.ConnectionString=$ConnectionString
$conn.Open()
$cmd=new-object system.Data.SqlClient.SqlCommand($Query,$conn)
$cmd.CommandTimeout=$QueryTimeout
$ds=New-Object system.Data.DataSet
$da=New-Object system.Data.SqlClient.SqlDataAdapter($cmd)
[void]$da.fill($ds)
$conn.Close()
$ds.Tables
这个脚本给了我以下输出:
USER_NAME FULL_NAME EMAIL
--------- --------- -----
user01 First Last user01@foo.com
user02 First Last user02@foo.com
user03 First Last user03@foo.com
带有大量空格的精美表格数据,这使得导入 Excel 相当令人生畏......
然后,我尝试将我的 SQL 查询更改为更适合的内容,即,我尝试创建一个分号分隔的输出,因为它可以很好地导入。
$Query = "select USER_NAME + ';' + FULL_NAME + ';' + EMAIL from [td].USERS"
这几乎奏效了,因为我得到了以下输出:
Column1
-------
user01;First Last;user01@foo.com
user02;First Last;user02@foo.com
user03;First Last;user03@foo.com
没有显示的是所有行的末尾都用空格填充,一直到位置 119 - 这是很多空格......
所以,最后我的问题是:我怎样才能摆脱所有的空间?我可以在上面的脚本中执行此操作,还是需要在第一个脚本的输出上使用另一个脚本?