这让我很困惑,想知道是否有人可以对此有所了解,也许还可以用这个例子回答两个部分?
我有一个 Powershell 脚本,我像批处理文件一样运行,并将它从单独的文件中捕获的值输出到日志中。这个特定部分没有在我获得数据库的数据库版本的成绩单中输出。我已经尝试了不同的位置,单独"
使用$DBVersion
,这是一种简单的方法来显示我遇到的问题。例如:
## Read the DBs Extended properties
Function Get-DB_Version {
Param (
$SQLInstance,
$DBName
)
Invoke-Sqlcmd -ServerInstance $SQLInstance -Database $DBName -Query "SELECT value FROM fn_listextendedproperty(default, default, default, default, default, default, default) WHERE name = 'version'"
}
**Other Variables used are also pre-set above here **
## Get DB version
$DBVersion = Get-DB_Version -SQLInstance $SQLInstance -DBName $DBName
Start-Transcript -Path "$LogOutput\$LogName" -IncludeInvocationHeader -Append
Write-Information "
**** DEBUG INFO ****
Write-Host "Debug:"$DBVersion.value
Write-Information "Debug:"$DBVersion.value
Read-Host -Prompt "PAUSE" # This is so I can visually see the console seeing only the write-host is there as expected.
Stop-Transcript
在我的日志文件中,我得到了输出:
调试:2.16.51443.5147
信息:调试:
这表明该变量包含一个值,因为写入主机输出它,但是当使用Write-Information
它时,它不会在日志中显示任何内容,我使用的所有其他变量都会显示,为什么会显示$DBVersion.value
或$DBVersion
不显示任何内容?
第二部分也是,为什么我必须使用:
$DBVersion.value
在write-host ""
引号之外?
非常感谢提前