在 PowerShell 模块中,在导出函数中使用 Start-Transcript 会更改 return 值?
In a PowerShell module, using Start-Transcript in an exported function, changes the return value?
希望有人能协助解决这个问题。
我出于某些工作目的创建了一个记录器,我将其制作为 PS 模块。
记录器工作正常,但刚刚了解到 Start-Transcript
并认为我会将其合并到我的模块中,以在运行时日志中记录所有内容(包括错误和其他信息)。
该模块包含一个 PS Class 和一个导出函数。 (参见 https://github.com/Ostekages/Powershell_logger/blob/main/logger.psm1)
但是,我遇到了一个问题。
创建 class 的实例时,通常是 TypeName: Logger
但是当 Start-Transcript
在导出函数中时,它现在是 TypeName: System.String
供参考,这是两个导出的函数,有或没有 start-transcript:
function UseLogger ($name, $path) {
return [Logger]::New($name,$path)
}
Export-ModuleMember -Function UseLogger
function UseLogger ($name, $path) {
Start-Transcript -Path "$Path" -Append -NoClobber
return [Logger]::New($name,$path)
}
Export-ModuleMember -Function UseLogger
我的问题是来自 class 的方法不起作用,只报告 No method "log" on type [System.String]
非常感谢任何信息!
问候
奥斯特
Start-Transcript
输出一个字符串,抑制它以仅获取记录器实例:
function UseLogger ($name, $path) {
Start-Transcript -Path "$Path" -Append -NoClobber |Out-Null
return [Logger]::New($name,$path)
}
希望有人能协助解决这个问题。
我出于某些工作目的创建了一个记录器,我将其制作为 PS 模块。
记录器工作正常,但刚刚了解到 Start-Transcript
并认为我会将其合并到我的模块中,以在运行时日志中记录所有内容(包括错误和其他信息)。
该模块包含一个 PS Class 和一个导出函数。 (参见 https://github.com/Ostekages/Powershell_logger/blob/main/logger.psm1)
但是,我遇到了一个问题。
创建 class 的实例时,通常是 TypeName: Logger
但是当 Start-Transcript
在导出函数中时,它现在是 TypeName: System.String
供参考,这是两个导出的函数,有或没有 start-transcript:
function UseLogger ($name, $path) {
return [Logger]::New($name,$path)
}
Export-ModuleMember -Function UseLogger
function UseLogger ($name, $path) {
Start-Transcript -Path "$Path" -Append -NoClobber
return [Logger]::New($name,$path)
}
Export-ModuleMember -Function UseLogger
我的问题是来自 class 的方法不起作用,只报告 No method "log" on type [System.String]
非常感谢任何信息!
问候 奥斯特
Start-Transcript
输出一个字符串,抑制它以仅获取记录器实例:
function UseLogger ($name, $path) {
Start-Transcript -Path "$Path" -Append -NoClobber |Out-Null
return [Logger]::New($name,$path)
}