我希望从PowerShell运行SQLPLUS。所以我想运行一个SQLPLUS.exe,然后执行一个SQL文件。一旦运行,如果成功,我想写一个日志文件'这是成功'或'这是一个失败'。
我试图将.exe作为
运行 &'path\sqlplus.exe' 'system/password@dbase as sysdba' '@themainscript.sql'
但是如果成功的话,我发现下一部分很难写入日志文件。我不打算检查它是否成功,如果成功,我需要知道如何写入日志文件
答案 0 :(得分:0)
尝试查看Start-Transcript命令。它的语法非常简单。您只需将其作为参数传递给文件路径,然后使用Write-Host填充文件。像这样:
mkdir C:\Temp
Start-Transcript C:\Temp\logfile.txt
#do something
Write-Host "Success!"
Stop-Transcript
另外,你可以使用$?变量以确定命令是否成功或$ LASTEXITCODE从您调用的进程中获取退出代码(如果退出代码为0,则$?返回true)。
注意Start-Transcript对于更详细的信息很有用......如果你只想写“它是成功的”,那么重定向就足够了:“它是成功的”> “SomeFilePathHere”
答案 1 :(得分:0)
比转录更容易,您可以重定向。
& 'command.exe' 'arg' 'arg2' > Logfile.txt
如果你只想写成功,
$outputofcommand = & 'command.exe' 'arg' 'arg2'
<# logic to check output #>
$outputofcommand > Logfile.txt
答案 2 :(得分:0)
我的理解是你只想记录运行的状态,而不记录实际发生的情况?
如果sqlplus.exe返回一个exitcode,你可以在运行后在线上执行此操作:
if ($?) {add-content "c:\temp\logfile.txt" "This was a success"} else {add-content "c:\temp\logfile.txt" "This was a failure"}