[解決済み】PowerShellの関数で変数をインクリメントする
2022-02-14 21:54:21
質問
PowerShell 関数で変数をインクリメントするにはどうしたらいいですか?
以下の例では、関数に入力されるデータがない状態で使用しています。関数が呼ばれるたびに変数をインクリメントしたいのです。変数$increには1が加算され、スクリプトが完了すると$increの合計が表示されます。
関数comparethisが4回実行され、そのたびに$increが1ずつ増加したためです。
$incre = 0
function comparethis() {
# Do this comparison
$incre++
Write-Host $incre
}
comparethis #compare 2 variables
comparethis #compare 2 variables
comparethis #compare 2 variables
comparethis #compare 2 variables
Write-Host "This is the total $incre"
解決方法は?
動的スコープの問題に遭遇しています。参照 スコープについて . 関数内部では$increは定義されていないので、グローバルスコープからコピーされます。グローバルな$increは変更されません。もし、修正したい場合は、以下のようにします。
$incre = 0
function comparethis() {
#Do this comparison
$global:incre++
Write-Host $global:incre
}
comparethis #compare 2 variables
comparethis #compare 2 variables
comparethis #compare 2 variables
comparethis #compare 2 variables
Write-Host "This is the total $incre"
関連
-
[解決済み] OutVariableを使用してArrayListを作成する
-
[解決済み] Add-ADGroupMember が ID を持つオブジェクトを見つけられません。
-
[解決済み] Get-ADUser -Identity
-
[解決済み] インストールされたPowerShellのバージョンを確認する
-
[解決済み] PowerShellで「このシステムではスクリプトの実行が無効になっています」と言われる。
-
[解決済み] PowerShellでコードをコメントアウトする方法とは?
-
[解決済み] Windows PowerShellの環境変数を設定する
-
[解決済み] PowerShellで文字列と変数を連結する方法は?
-
[解決済み】PowerShellスクリプトを実行する方法
-
[解決済み] Powershellでオブジェクトのプロパティを印刷する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] スクリプト内の特定の場所にジャンプする
-
[解決済み] Connect-VIServer は、渡された資格情報では動作しないが、統合された認証では動作する。
-
[解決済み] スクリプトへのパスが完全修飾されている場合、削除サーバーでのPowershellの実行に失敗する
-
[解決済み] Windows PowerShellでファイルが存在するかどうかをチェックする?
-
[解決済み] Powershell:スクリプトにエラーが表示されないようにするにはどうすればよいですか?
-
[解決済み] 配列、ハッシュテーブル、ディクショナリーを作成しますか?
-
[解決済み] Write-ErrorとThrowはいつ使い分ける?終端エラーと非終端エラー
-
[解決済み] 実行中のPowerShellスクリプトからすべての環境変数を表示する
-
[解決済み] グローバル変数名が関数に渡された変数である関数からPowerShellのグローバル変数を設定する
-
[解決済み] PowerShellの複数行コメント