Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用PowerShell记录程序运行时_Windows_Powershell - Fatal编程技术网

Windows 使用PowerShell记录程序运行时

Windows 使用PowerShell记录程序运行时,windows,powershell,Windows,Powershell,我想记录特定程序的运行时间,并将时间记录在文件(纯文本或Excel)中 作为输出的一个示例: 01.01.2018 notepad.exe Start: 06:30 End: 12:30 Duration: 6h 01.01.2018 notepad.exe Start: 14:00 End: 15:00 Duration: 1h 05.01.2018 .... 我尝试过各种各样的事情,但我的知识还不够,我一事无成。任何级别都没有日志记录,因为它破坏了我的输出 我现在得到的是: $name =

我想记录特定程序的运行时间,并将时间记录在文件(纯文本或Excel)中

作为输出的一个示例:

01.01.2018 notepad.exe Start: 06:30 End: 12:30 Duration: 6h
01.01.2018 notepad.exe Start: 14:00 End: 15:00 Duration: 1h
05.01.2018 ....
我尝试过各种各样的事情,但我的知识还不够,我一事无成。任何级别都没有日志记录,因为它破坏了我的输出

我现在得到的是:

$name = 'openvpn-gui'
$anzahl = $prozesse.Count

$läuft = $anzahl -gt 0
$prozesse = Get-Process -Name $name -ErrorAction SilentlyContinue
$Path ="$env:C\Log\Log.txt"

if ($läuft) {
    New-TimeSpan -Start($prozesse).StartTime
} else {
    "$name läuft nicht"
}
背景是我想记录openvpn的使用。该工具每天使用多少小时

既然我刚刚习惯了PowerShell,我想我可以这样做。但如上所述,我很快就达到了极限,没有继续下去的线索


好的!我设法做了点什么:)

此处仍然存在2个错误:如果脚本运行时未执行openvpn gui,则会显示错误消息


我如何将其登录到文件中?我尝试退出文件-文件路径。。。创建一个Log.txt,但不包含任何内容

您可以创建一个快捷方式,调用记录开始时间的脚本,然后为您加载openvpn,然后您可以调用脚本,因为openvpn将运行。您可能希望引入几秒钟的延迟,以便在调用下面的脚本之前加载openvpn

$start = (get-process openvpn-gui).StartTime
wait-process openvpn-gui                           
$end = Get-Date                                

$Runtime = $end - $start

Write-Host "Startzeit $start"
write-host "Endzeit $end"
write-host "$($Runtime.Hours) Stunden, $($Runtime.Minutes) Minuten, $($Runtime.Seconds) Sekunden"
您可以像这样将变量写入文件

$StartTime = Get-Date -Format yyyyMMdd-HHmmss
$MyFilenamePath = "c:\test\OpenVPNStart$StartTime.txt"
$StartTime | sc $MyFilenamePath 

您可以发布一个您尝试过的示例吗?代码请求在这里是离题的,请阅读,然后发布一个您的代码,并对发生的情况和输出进行完整解释,我们可以复制这些内容以帮助您。对不起!我应该用不同的方式来表达,
$anzahl
$läuft
依赖于
$prozesse
,但之前已经定义过了。为了避免您在编码职业中未来的麻烦,不要在代码中使用
ß,ü,ö,ä
。尤其是变量名。:)
$StartTime = Get-Date -Format yyyyMMdd-HHmmss
$MyFilenamePath = "c:\test\OpenVPNStart$StartTime.txt"
$StartTime | sc $MyFilenamePath