1

ディレクトリで実行するスクリプトがいくつかあります。それらはすべて同時に実行されます。どのスクリプトが最後に終了したかを判断するのに苦労しています。これを見つける方法はありますか?

4

3 に答える 3

2

基本的なロギングはジョブを実行し、スクリプトの開始時と終了時にログ エントリを書き込みます。また、期間を記録することもできます。結果をログファイルに書き込むことができます。結果は秒単位です。

startTime=timer
wscript.echo "started at " & startTime
'do your stuff'
wScript.sleep 500
stopTime=timer
wscript.echo "stopped at " & StopTime & " duration was " & stopTime - startTime

'started at 81558,17
'stopped at 81558,67 duration was 0,5
于 2013-02-28T21:40:10.807 に答える
2

マスター スクリプトを使用して、.Exec 経由で (子) スクリプトを開始します。exec オブジェクトのステータス プロパティを監視します。exec オブジェクトのステータスが WshFinished に変わった時刻を記録/表示します。

于 2013-02-28T17:52:46.170 に答える
1

私の提案は WMI に基づいています。(斬新なアイデアについては下にスクロールしてください)

Option Explicit

Dim objWMIService, colProcesses, objProcess
Dim iCount, iLoop, sFileName

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & ".\root\cimv2")

' wait all scripts to finish
Do While True
    WScript.Sleep 200
    ' snapshot running scripts
    Set colProcesses = objWMIService.ExecQuery( _
        "Select * From Win32_Process " _
        & "Where Name = 'WScript.exe' " _
        & "OR Name = 'CScript.exe'", , 48)

    iCount = 0
    For Each objProcess In colProcesses
        ' skip current "monitor" script, test the rest
        If InStr (objProcess.CommandLine, WScript.ScriptName) = 0 Then
            sFileName = Split(objProcess.CommandLine, """")(3)
            iCount = iCount + 1
        End If
    Next
    If iCount < 1 Then Exit Do
    iLoop = iLoop + 1
Loop

' and show what we get
If iLoop > 0 Then
    WScript.Echo "LastOne:" & vbNewLine & sFileName
Else
    WScript.Echo "No other .vbs running except Me"
End If

[編集] ええと、新しいアイデアが今私の頭に浮かんでいます。たぶん、あなたはそれが面白いと思うか、少なくとも試してみてください.

' do your work here...
WScript.Sleep 3000

Call SelfLogged

Sub SelfLogged()
    Const ForAppending = 8
    With CreateObject("Scripting.FileSystemObject")
        With .OpenTextFile(WScript.ScriptFullName, ForAppending)
            .Write Chr(0)
        End With
    End With
End Sub

アイデアはDateLastModified、ファイルに char を追加してファイル プロパティを変更することです。

于 2013-02-28T21:14:33.400 に答える