powershell脚本录制



我正在使用expdp命令进行备份,然后将输出重定向到文本文件中。在进行过程中,控制台是空白的。我想编写一个powershell脚本,以显示状态消息为" in Progress ",直到expdp命令执行完成。我尝试使用start-job命令,但是由于它是后台作业,因此无法将输出重定向到文本文件。感谢这里的任何帮助。以下是用于启动JOB

的代码
$job = Start-Job -ScriptBlock {expdp username/password@database schemas="" directory="" dumpfile="" logfile="" REUSE_DUMPFILES=yes filesize=32G *> PROJECT.txt} -Name ExpdpJob
while ((Get-Job -Name ExpdpJob).State -eq "Running") 
{ 
    Write-Output "Expdp command is running"
}

要捕获标准输出,您必须使用recect-job命令。我已经用PowerShell 5.1测试了以下代码,并且可以正常进行。由于不支持信息流(#6(,因此它将不起作用。以下摘要假装ExpDP运行10秒,并等待每5秒钟直到完成一次"运行"消息,然后捕获输出以用接收乔布进行文件并删除作业。

$job = Start-Job -ScriptBlock {Start-Sleep -Seconds 10; Write-Host "test";} -Name ExpdpJob
while ((Get-Job -Name ExpdpJob).State -eq "Running") 
{ 
    Write-Output "Expdp command is running"
    Start-Sleep -Seconds 5
}
Write-Output "Expdp command completed"
((Receive-Job $job) 6>&1) >> C:temptest123.txt
Remove-Job $job
Get-Content C:temptest123.txt

最新更新