簡體   English   中英

Powershell中字符串中變量的替換成員

[英]Substitute member of variable within string in Powershell

我在PowerShell腳本中有以下字符串表達式:

"select count(*) cnt from ${schema}.${table} where ${col.column_name} is null"

模式和表分別解析為$ schema和$ table的值。 但是,為$ {col.column_name}提供了一個空字符串。 如何作為字符串替換的一部分插入變量的成員?

怎么樣:

"select count(*) cnt from $schema.$table where $($col.column_name) is null"

我認為你遇到的問題主要是語法相關的。 如果你有一個名為$ foo的變量,$ {foo}引用相同的變量。 因此,sql字符串中的$ {table}和$ {schema}引用可以正常工作。

問題在於$ {col.column_name}。 您的變量(我假設)稱為$ col,並且具有名為column_name的成員。 正如Robert和Steven在他們的答案中指出的那樣,要引用它,你應該使用$($ col.column_name)。 通常,$(表達式)將替換為表達式的值。

允許變量名稱括號的原因是變量的名稱中可能包含不常見的字符。 我建議不要使用$ {}語法(除非你有令人信服的理由),並將其替換為變量的直接$ var引用和字符串中成員引用的$($ var.member)。

一種方法是:

"select count(*) cnt from $schema.$table where $($col.column_name) is null"

另一種選擇是

"select count(*) cnt from {0}.{1} where {2} is null" -f $schema, $table, $col.column_name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM