Powershell - 输出到屏幕和日志文件

时间:2017-06-30 15:31:38

标签: powershell powershell-v4.0 bcp

我正在尝试将所有输出写入日志文件,而我似乎做错了什么。我还需要屏幕上的输出。

这是我到目前为止所做的:

#  Log file time stamp:
$LogTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
#  Log file name:
$LogFile = "EXPORTLOG_"+$LogTime+".log"

$database = "DB"
$schema = "dbo"
$table = "TableName"



foreach($line in Get-Content .\Alltables.txt) {
    if($line -match $regex){

        $bcp = "bcp $($database).$($schema).$($line) out $line.dat -T -c"
        Invoke-Expression $bcp | Out-File $LogFile -Append -Force
    }
}

当我想将命令写入日志文件以便我知道哪个表被处理时,我收到一个错误: 这是代码:

#  Log file time stamp:
$LogTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
#  Log file name:
$LogFile = "EXPORTLOG_"+$LogTime+".log"

$database = "DB"
$schema = "dbo"
$table = "TableName"



foreach($line in Get-Content .\Alltables.txt) {
    if($line -match $regex){

        $bcp = "bcp $($database).$($schema).$($line) out $line.dat -T -c" | Out-File $LogFile -Append -Force
        Invoke-Expression $bcp | Out-File $LogFile -Append -Force
    }
}

错误:

Invoke-Expression : Cannot bind argument to parameter 'Command' because it is null.
At C:\Temp\AFLAC\export.ps1:16 char:21
+         Invoke-Expression $bcp | Out-File $LogFile -Append -Force
+                           ~~~~
    + CategoryInfo          : InvalidData: (:) [Invoke-Expression], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.InvokeExpressionCommand

我显然对Powershell并不是很好,我请你就如何以最好的方式编写代码提出建议。 也许上述方式完全错误,我非常感谢您的指导。

谢谢

1 个答案:

答案 0 :(得分:4)

尝试将代码修改为以下内容:

require