[解決済み] PowerShellでハッシュをループする、または配列を使用する
2022-09-15 07:27:20
質問
私はこの(簡略化した)コードの塊を使って、SQL Server からテーブルのセットを BCP .
$OutputDirectory = "c:\junk\"
$ServerOption = "-SServerName"
$TargetDatabase = "Content.dbo."
$ExtractTables = @(
"Page"
, "ChecklistItemCategory"
, "ChecklistItem"
)
for ($i=0; $i -le $ExtractTables.Length – 1; $i++) {
$InputFullTableName = "$TargetDatabase$($ExtractTables[$i])"
$OutputFullFileName = "$OutputDirectory$($ExtractTables[$i])"
bcp $InputFullTableName out $OutputFullFileName -T -c $ServerOption
}
これはとてもうまくいくのですが、現在、いくつかのテーブルはビューを介して抽出される必要があり、いくつかはそうではありません。そこで、次のようなデータ構造が必要です。
"Page" "vExtractPage"
, "ChecklistItemCategory" "ChecklistItemCategory"
, "ChecklistItem" "vExtractChecklistItem"
ハッシュについて調べていたのですが、ハッシュをループする方法について何も見つかりませんでした。ここで行うべき正しいことは何でしょうか?おそらく、単に配列を使用しますが、両方の値をスペースで区切って使用しますか?
または、私は何か明白なものを見逃していますか?
どのように解決するのですか?
クリスチャンの回答はうまくいっており、ハッシュテーブルの各項目で
GetEnumerator
メソッドを使って、ハッシュテーブルの各項目をループする方法を示しています。また
keys
プロパティを使ってループさせることもできます。以下はその例です。
$hash = @{
a = 1
b = 2
c = 3
}
$hash.Keys | % { "key = $_ , value = " + $hash.Item($_) }
出力します。
key = c , value = 3
key = a , value = 1
key = b , value = 2
関連
-
[解決済み] Windows Server 2016で、すべてのPowerShellセッションのコマンド履歴を確認するにはどうすればよいですか?
-
[解決済み] インストールされたPowerShellのバージョンを確認する
-
[解決済み] PowerShellで「このシステムではスクリプトの実行が無効になっています」と言われる。
-
[解決済み] PowerShellでコードをコメントアウトする方法とは?
-
[解決済み] Windows PowerShellの環境変数を設定する
-
[解決済み] PowerShellで文字列と変数を連結する方法は?
-
[解決済み] Bashでハッシュテーブルを定義する方法は?
-
[解決済み] JavaScriptで連想配列・ハッシュ化を行う方法
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Invoke-Command エラー "Parameter set cannot be resolved using specified named parameters".
-
[解決済み] Invoke-Sqlcmd エラー : リモート DB サーバを呼び出すために powershell を実行すると、ユーザ xxxx のログインに失敗しました。
-
[解決済み] Push-LocationとSet-Locationの使い分けは?
-
[解決済み] AzureのAdd-AzureDiskが動作しない
-
[解決済み] PowerShellでディレクトリを変更する
-
[解決済み] Base64の文字列をデコードするには?
-
[解決済み] PowerShellで改行するには?
-
[解決済み] Powershell Get-ChildItem -Filter は、同じ値でWhere句とは異なる動作をします。
-
[解決済み] PowerShellで文字列がifで始まる場合 [重複]。
-
[解決済み] 実行中のPowerShellスクリプトからすべての環境変数を表示する