[解決済み] オブジェクトのプロパティを二重引用符で囲んで使用するには?
2022-07-27 01:51:10
質問内容
次のようなコードがあります。
$DatabaseSettings = @();
$NewDatabaseSetting = "" | select DatabaseName, DataFile, LogFile, LiveBackupPath;
$NewDatabaseSetting.DatabaseName = "LiveEmployees_PD";
$NewDatabaseSetting.DataFile = "LiveEmployees_PD_Data";
$NewDatabaseSetting.LogFile = "LiveEmployees_PD_Log";
$NewDatabaseSetting.LiveBackupPath = '\\LiveServer\LiveEmployeesBackups';
$DatabaseSettings += $NewDatabaseSetting;
文字列実行コマンドでプロパティの一つを使おうとしたとき。
& "$SQlBackupExePath\SQLBackupC.exe" -I $InstanceName -SQL `
"RESTORE DATABASE $DatabaseSettings[0].DatabaseName FROM DISK = '$tempPath\$LatestFullBackupFile' WITH NORECOVERY, REPLACE, MOVE '$DataFileName' TO '$DataFilegroupFolder\$DataFileName.mdf', MOVE '$LogFileName' TO '$LogFilegroupFolder\$LogFileName.ldf'"
の値だけを使おうとします。
$DatabaseSettings
の値ではなく
$DatabaseSettings[0].DatabaseName
という値ではなく、有効ではありません。
私の回避策は、それが新しい変数にコピーされることです。
二重引用符で囲まれた文字列で、オブジェクトのプロパティに直接アクセスするにはどうすればよいですか?
どのように解決するのですか?
変数名をダブルクォートで囲むと、その変数の値に置き換わります。
$foo = 2
"$foo"
になる
"2"
もしそれが嫌ならシングルクォートを使わなければなりません。
$foo = 2
'$foo'
しかし、プロパティにアクセスしたり、二重引用符で囲まれた文字列の変数にインデックスを使用したい場合、その部分式を
$()
:
$foo = 1,2,3
"$foo[1]" # yields "1 2 3[1]"
"$($foo[1])" # yields "2"
$bar = "abc"
"$bar.Length" # yields "abc.Length"
"$($bar.Length)" # yields "3"
PowerShell はこれらのケースで変数を展開するだけで、それ以上のことは行いません。インデックス、プロパティ、あるいは完全な計算など、より複雑な式を強制的に評価するには、それらを部分式演算子で囲む必要があります。
$( )
で囲む必要があります。これにより、中の式が評価され、文字列に埋め込まれます。
関連
-
[解決済み] PowerShellでコマンド出力に改行を追加するにはどうすればよいですか?
-
[解決済み] PowerShellで変数とその型がBooleanであることを宣言する方法は?[重複している]をクリックします。
-
[解決済み] PowerShellでコードをコメントアウトする方法とは?
-
[解決済み] JavaScriptで文字列補間を行うにはどうすればよいですか?
-
[解決済み] PowerShellスクリプトに引数を渡すにはどうしたらいいですか?
-
[解決済み] PowerShellで文字列がNULLまたは空であるかどうかを確認するにはどうすればよいですか?
-
[解決済み] 補間文字列の内部で三項演算子を使用するには?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】'<'演算子は将来の使用のために予約されている
-
[解決済み] Get-ADUser -Identity
-
[解決済み] xPath を使用する Powershell スクリプトの .SelectSingleNode が web.config ファイルから値を抽出する際に動作していない
-
[解決済み] Get-ADUser でのエラー: 無効な列挙コンテキスト
-
[解決済み] ヌル値の式でメソッドを呼び出すことはできない
-
[解決済み] PowerShell 'Or' ステートメント
-
[解決済み] PowerShellでコンソールに書き込むには?
-
[解決済み] Write-ErrorとThrowはいつ使い分ける?終端エラーと非終端エラー
-
[解決済み] グローバル変数名が関数に渡された変数である関数からPowerShellのグローバル変数を設定する
-
[解決済み] PowerShellスクリプトのファイルシステムの場所を取得するにはどうすればよいですか?