相关疑难解决方法(0)

如何在双引号字符串中使用对象的属性?

我有以下代码:

$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;
Run Code Online (Sandbox Code Playgroud)

当我尝试使用字符串执行命令中的一个属性时:

& "$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'"
Run Code Online (Sandbox Code Playgroud)

它试图只使用值$DatabaseSettings而不是值$DatabaseSettings[0].DatabaseName,这是无效的.
我的解决方法是将其复制到一个新变量中.

如何直接在双引号字符串中访问对象的属性?

powershell string-interpolation

84
推荐指数
5
解决办法
5万
查看次数

PowerShell 字符串插值语法

我总是使用以下语法来确保变量在字符串中展开:

"my string with a $($variable)"

我最近遇到了以下语法:

"my string with a ${variable}"

它们是等价的吗?有什么区别吗?

syntax powershell string-interpolation

29
推荐指数
3
解决办法
2万
查看次数

标签 统计

powershell ×2

string-interpolation ×2

syntax ×1