这是我之前问题的后续(Copy Update Create VBScript和File Folder copy)。到目前为止,我有以下脚本可以使用xcopy复制文件
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set wshShell = WScript.CreateObject("WScript.Shell")
strUserName = wshShell.ExpandEnvironmentStrings("%USERNAME%")
' Discover Current Drive Path
curDrv = objFSO.GetParentFolderName(WScript.ScriptFullName) 'Drive Path
' USB Drive and folder Path
upath = curdrv & "\ACG"
' Source
avg8 = "c:\Docume~1\alluse~1\applic~1\avg8\update\download\*.*"
avg9 = "c:\Docume~1\alluse~1\applic~1\avg9\update\download\*.*"
If struserName = DARIO Then
'(1) GOTO Update
End If
If Not objFSO.FolderExists (upath) Then
objFSO.CreateFolder (upath)
End If
If objFSO.FolderExists (avg9) Then
'WshShell.Run "xcopy c:\Docume~1\alluse~1\applic~1\avg9\update\download\*.* usbdrive:\acg /D", , True
'(2) WshShell.Run "xcopy avg9 upath /D", , True
WshShell.Run "xcopy " & avg9 & " " & upath & " /D", , True
End If
If objFSO.FolderExists (avg8) Then
'WshShell.Run "xcopy c:\Docume~1\alluse~1\applic~1\avg8\update\download\*.* & usbdrive:\acg & /D", , True
'(3) WshShell.Run "xcopy avg8 upath /D", , True
WshShell.Run "xcopy " & avg8 & " " & upath & " /D", , True
End if
MsgBox "Definition Files Copied to your USB Drive @ " & upath, vbInformation, "Copy Success..."
WScript.Quit
' Update
If Not objFSO.FolderExists("C:\Updates") Then
objFSO.CreateFolder "C:\Updates"
End If
If objFSO.FolderExists (upath) then
Wshshell.Run "xcopy " & upath & " " & "C:\Updates /D", , True '(4)
MsgBox "Update Files Copied to C:\Updates" , vbInformation, "Copy Destination"
End IF
' Process
Message = "Click OK to Start Updating product." & vbCr & vbCr
Message = Message & "Click Cancel or (Esc) to Exit." &vbCr & vbCr
Message = Message & "Keep Selecting OK until you get" & vbCr
Message = Message & "the Message :-" & vbCr & vbCr
Message = Message & "''No New Update Files Available''" & vbCR & vbCR
X = MsgBox(Message, vbOKCancel, "AVG Update Module")
Select Case X
Case vbCancel
MsgBox (strUserName & " cancelled the process.") , vbCritical, "Operation Terminated."
Wscript.Quit
Case vbOK
If objFSO.FileExists("C:\Program Files\AVG\AVG89\avgupd.exe") Then
WshShell.Run "C:\Program Files\AVG\AVG9\avgupd.exe" /source=folder /path="C:\Updates"
End If
If objFSO.FileExists("C:\Program Files\AVG\AVG8\avgupd.exe") Then
WshShell.Run "C:\Program Files\AVG\AVG8\avgupd.exe" /source=folder /path="C:\Updates"
'(5) Loop to Process
End If
End Select不幸的是,xcopy没有发生。有人能解释我的剧本出了什么问题,并指出了实现点(1) - (5)的正确方向吗?谢谢。
发布于 2009-12-28 13:52:26
使用FileSystemObject.CopyFile代替xcopy,就像这样。
If objFSO.FolderExists (avg9) Then
objFSO.CopyFile "c:\Docume~1\alluse~1\applic~1\avg9\update\download\*.*", "usbdrive:\acg", True
End If也可以使用If而不是GOTO
If struserName = "DARIO" Then
'Do whatever should be done if the user is DARIO
Else
'Do whatever should be done if the user is not DARIO
End If您还可以使用这样的子例程或函数
if struserName = "DARIO" Then
DoDARIOStuff
else
DoOtherStuff
end if然后定义代码中其他地方的子程序,如下所示
Sub DoDARIOStuff
'Do whatever should be done if the user is DARIO
End Sub
Sub DoOtherStuff
'Do whatever should be done if the user is not DARIO
End Subhttps://stackoverflow.com/questions/1961044
复制相似问题