系统 IO 目录信息
System IO DirectoryInfo
我只是尝试将 SQL 备份恢复到我的恢复服务器,我编写了脚本来执行此操作,但我在 PowerShell 控制台上收到此错误:
Method invocation failed because [System.IO.DirectoryInfo] does not contain a method named 'op_Addition'.
At line:39 char:1
+ $dbRestoreLog.LogicalFileName = $dbname + "_Log"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
从显示的错误来看,$dbname
显然是一个 DirectoryInfo
对象。
我猜你是通过 Get-Item
或 Get-ChildItem
检索到的。
如果您希望 LogicalFileName
属性 成为 $dbname
文件夹的名称并附加字符串 "_Log"
,请执行:
$dbRestoreLog.LogicalFileName = $dbname.Name + "_Log"
或者让 PowerShell 将 $dbname
放在双引号内隐式转换为字符串(DirectoryInfo.ToString()
默认为 Name
属性):
$dbRestoreLog.LogicalFileName = "$dbname" + "_Log"
您可以类似地使用 -f
字符串格式运算符:
$dbRestoreLog.LogicalFileName = '{0}_Log' -f $dbname
我只是尝试将 SQL 备份恢复到我的恢复服务器,我编写了脚本来执行此操作,但我在 PowerShell 控制台上收到此错误:
Method invocation failed because [System.IO.DirectoryInfo] does not contain a method named 'op_Addition'. At line:39 char:1 + $dbRestoreLog.LogicalFileName = $dbname + "_Log" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound
从显示的错误来看,$dbname
显然是一个 DirectoryInfo
对象。
我猜你是通过 Get-Item
或 Get-ChildItem
检索到的。
如果您希望 LogicalFileName
属性 成为 $dbname
文件夹的名称并附加字符串 "_Log"
,请执行:
$dbRestoreLog.LogicalFileName = $dbname.Name + "_Log"
或者让 PowerShell 将 $dbname
放在双引号内隐式转换为字符串(DirectoryInfo.ToString()
默认为 Name
属性):
$dbRestoreLog.LogicalFileName = "$dbname" + "_Log"
您可以类似地使用 -f
字符串格式运算符:
$dbRestoreLog.LogicalFileName = '{0}_Log' -f $dbname