0

次のようにvbsスクリプトを呼び出すバッチファイルがあります:

cd d:
    cd D:\Application\Pentasafe\HKPentasafe\DailyLog\Deployment Code
    cscript CommandProcessing.vbs
    del /s "D:\Application\Pentasafe\HKPentasafe\DailyLog\Command Usage by Command\Tempworkspace\*.txt"

このバッチ ファイルは、この vbs (コマンド処理) を呼び出し、tempworkspace 内のファイルを削除します。

Const ForReading = 1
Const ForWriting = 2

Dim Source, Dest

objStartFolder = "D:\Application\Pentasafe\HKPentasafe\DailyLog\Command Usage by Command\Tempworkspace"
objDestFolder = "D:\Application\Pentasafe\HKPentasafe\DailyLog\Command Usage by Command\Scripted"

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files

'Only one file expected.
For Each objFile in colFiles
    Source = ObjStartFolder + "\" + objFile.Name
    Dest = ObjDestFolder + "\" + objFile.Name
    wscript.echo Source
    wscript.echo Dest
Next

Set objFile = objFSO.OpenTextFile(Source, ForReading)

Set objFile1 = objFSO.CreateTextFile(Dest, ForWriting)

Do Until objFile.AtEndOfStream
    Strline = objFile.ReadLine
    'wscript.echo Strline

    If InStr(Strline,"CHGUSRPRF") Then
    Prependtext = "CHGUSRPRF"
    wscript.echo Strline
    objFile1.WriteLine Strline
    ElseIf InStr(Strline,"STRSQL") Then
    Prependtext = "STRSQL"
    wscript.echo Strline
    objFile1.WriteLine Strline
    ElseIf InStr(Strline,"STRDFU") Then
    Prependtext = "STRDFU"
    wscript.echo Strline
    objFile1.WriteLine Strline
    ElseIf InStr(Strline,"UPDATA") Then
    Prependtext = "UPDATA"
    wscript.echo Strline
    objFile1.WriteLine Strline
    ElseIf InStr(Strline,"EZVIEW") Then
    Prependtext = "EZVIEW"
    wscript.echo Strline
    objFile1.WriteLine Strline
    ElseIf InStr(Strline,"WRKQRY") Then
    Prependtext = "WRKQRY"
    wscript.echo Strline
    objFile1.WriteLine Strline
    ElseIf InStr(Strline,"WRKUSRPRF") Then
    Prependtext = "WRKUSRPRF"
    wscript.echo Strline
    objFile1.WriteLine Strline
    ElseIf InStr(Strline, "             ") Then
    If (Prependtext <> "") Then
        objFile1.WriteLine Replace(Strline, "             ", Prependtext)
        wscript.echo Replace(Strline, "             ", Prependtext)
    else
        objFile1.WriteLine Strline   
    End If
    Else 
    Prependtext = ""
    objFile1.WriteLine Strline
    End If
Loop

objFile.Close
objFile1.Close

ただし、このジョブをウィンドウ サーバー 2008 でスケジュールすると、常に vbs スクリプトが呼び出されません。むしろそれをスキップして削除ジョブを実行します。バッチファイルをダブルクリックして手動で実行しようとしました..ウィンドウサーバー2008にアップグレードするまで、ウィンドウXPでうまく動作します.誰かこのトピックについて何か考えがありますか?

4

2 に答える 2

1

バッチ ファイルを実行するときの現在のドライブは? ほとんどの場合、それは C: ドライブです。D: を現在のドライブとして設定していないため、CommandProcessing.vbs は見つかりません。これを修正するには、D:CommandProcessing.vbs に変更するか、D: を現在のドライブにします。

于 2012-07-11T23:28:08.113 に答える
0

CommandProcessing.vbs ファイルはどこにありますか?

D:\Application\Pentasafe\HKPentasafe\DailyLog\Deployment コード内?

最初の行のパスが qoutes に含まれていないため、cd コマンドが失敗する可能性があります。そして、cscriptはスクリプトファイルを見つけることができません.

于 2012-07-11T07:26:11.460 に答える