如何在 Azure 管道中的 cmd 任务或 powershell 任务中小写 %USERNAME%?

问题描述 投票:0回答:0

我必须在运行我的管道的 Azure 管道代理中创建一个 postgres 用户。为此,我在管道中添加了一个 cmd 任务来创建用户。但是我希望用户名和用户域采用小写形式。

set PATH=C:\Program Files\PostgreSQL\14\bin;%PATH%

@ECHO OFF

SET "userdomain=%USERDOMAIN%"


SET "username=%USERNAME%"


ECHO User Domain: %userdomain%
ECHO Username: %username%

echo Creating role %username%@%userdomain%...


psql --username postgres -d postgres -h localhost -p 5432 -c "CREATE ROLE \"%username%@%userdomain%\" LOGIN SUPERUSER INHERIT CREATEDB CREATEROLE REPLICATION;"

echo Role created successfully.

**我还创建了一个 powershell 脚本来做同样的事情,但它没有用。 **

Write-Host "*****Hello World"
echo 'PGBIN is ' $env:PGBIN
echo 'PGDATA is ' $env:PGDATA
echo 'PGROOT is ' $env:PGROOT
echo 'Contents of PGBIN'
ls $env:PGBIN
Set-Service postgresql-x64-14 -StartupType manual
Start-Service postgresql-x64-14
Get-CimInstance win32_service | Where-Object Name -eq "postgresql-x64-14"

#Create Role and Username value 
$UserNameForPostgres = "$env:username@$env:userdomain".ToLower()

我试过在 cmd 中提到这样的用户名 %@lower[%USERNAME%],但它不起作用。有人可以就此提出建议吗?

shell batch-file cmd azure-pipelines
© www.soinside.com 2019 - 2024. All rights reserved.