如何在powershell中运行.exe文件并将结果写入日志文件

时间:2017-07-26 14:08:00

标签: powershell exe

我希望从PowerShell运行SQLPLUS。所以我想运行一个SQLPLUS.exe,然后执行一个SQL文件。一旦运行,如果成功,我想写一个日志文件'这是成功'或'这是一个失败'。

我试图将.exe作为

运行
 &'path\sqlplus.exe' 'system/password@dbase as sysdba' '@themainscript.sql'

但是如果成功的话,我发现下一部分很难写入日志文件。我不打算检查它是否成功,如果成功,我需要知道如何写入日志文件

3 个答案:

答案 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"}