7

Powershell の世界に慣れていないので、ときどきトリッキーな構文に行き詰まることがあります。そのため、言語内で括弧を使用する可能性をすべて見つけようとしています。

もう少し知っていますか?ここに追加できますか?

ここで私のもの(パイプラインでのカーリーとメソッド呼び出しでのラウンドの基本的な使用法を省略):

# empty array
$myarray = @()

# empty hash
$myhash = @{}

# empty script block
$myscript = {}

# variables with special characters
${very strange variable @ stack !! overflow ??}="just an example"

# Single statement expressions
(ls -filter $home\bin\*.ps1).length

# Multi-statement expressions inside strings
"Processes: $($p = “a*”; get-process $p )"

# Multi statement array expression
@( ls c:\; ls d:\)
4

6 に答える 6

6

ステートメントが式の結果を生成するようにします。

($x=3) + 5   # yields 8
于 2011-04-05T21:23:31.643 に答える
4

[..]ジェネリックを使用する場合は、型を次のようにラップする必要があります。

New-Object Collections.Generic.LinkedList[string]

これは配列のインデックス付けに似ているため、一部の人にとっては混乱を招くかもしれません。

于 2011-04-05T22:33:13.600 に答える
2

Param( ) ステートメント (関数、スクリプト、またはスクリプトブロック内)

If (または Elseif ステートメント) 内の条件周辺

switch ステートメントの式の周囲。

編集: while ステートメントの条件を忘れました。

Edit2: また、部分式の $() (文字列など)。

于 2011-04-05T21:36:12.350 に答える
1

正規表現は、間違いなく Powershell の第一級の構成要素です。

完全なリストをコンパイルする場合、角括弧と丸括弧が正規表現で果たす役割を含めることができます。

例:

$obj.connectionString = $obj.connectionString -replace '(Data Source)=[^;]+', '$1=serverB\SQL2008_R2'

XML がサポートされているため、XPath で使用される角かっこを含めることもできます。(しかし、それは本当に長い弓を描いています:-)

select-xml $config -xpath "./configuration/connectionStrings/add[@name='LocalSqlServer']"
于 2011-04-05T23:18:23.607 に答える
0

それも書かれていますが、「文字列内の複数ステートメント式を追加します」の後の最初の短いリストでは十分に明確ではありません

# Var property inside a string
$a = get-process a*
write-host "Number of process : $a.length" # Get a list of process and then ".length
Number of process : System.Diagnostics.Process (accelerometerST) System.Diagnostics.Process (AEADISRV) System.Diagnostics.Process (agr64svc).length

write-host "Number of process : $($a.length)" # To get correct number of process
Number of process : 3
于 2011-04-06T03:29:50.777 に答える
0

括弧は最も強力です。

いくつかのスクリプトブロックのエラーを含むすべての出力を収集し、これを処理するために変数または別の関数にリダイレクトするとします...括弧を使用すると、これは簡単なタスクです:

$customScript = {  "This i as test"; This will be procedure error!  }

(. $customScript 2>&1 ) | %{"CAPTURING SCRIPT OUTPUT: "+$_}
于 2014-10-12T14:09:42.260 に答える