Как создать папку, только если она не существует
Это ваш код:
objFSO.FolderExists("E:\Updates")
if TRUE then objFSO.CreateFolder ("E:\Updates")
просто вызывает методы FolderExists
и CreateFolder
в последовательности (CreateFolder
всегда вызывается, потому что условие if TRUE
оценивается как True) и равно:
objFSO.FolderExists("E:\Updates")
objFSO.CreateFolder ("E:\Updates")
Вы хотите вызвать CreateFolder
в зависимости от возвращаемого значения метода FolderExists
:
If Not objFSO.FolderExists("E:\Updates") Then
objFSO.CreateFolder "E:\Updates"
и копировать только те файлы, которые являются новыми или не существуют в исходном пути?
Ни VBScript, ни объект FileSystemObject
не имеют такой функциональности. Однако можно вызвать внешний инструмент, который может это сделать, например, xcopy
, из вашего сценария, используя метод WshShell.Run
. Я думаю, вам нужно что-то вроде этого:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "xcopy c:\Docume~1\alluse~1\applic~1\avg8\update\download\*.* E:\Updates\ /D", , True
Как вставить имя пользователя (точка 1)
Объединить текст сообщения со значением переменной strUserName
:
Message = " Welcome " & strUserName & " to the AVG Update Module" & vbCR
...
MsgBox "No Files have been Copied/Updated.", vbExclamation, strUserName & " Cancelled"
Можно ли изменить кнопки на «Копировать», «Обновить», «Отмена» вместо «Да», «Нет», «Отмена» (пункт 2)
Нет, встроенная в VBScript функция MsgBox
не поддерживает пользовательские кнопки. Однако есть обходные пути: вы можете создать свое собственное окно сообщения, используя HTA (приложение HTML) или использовать функцию InputBox
, чтобы запросить у пользователя задачу, которую он хочет выполнить. , Вы можете найти примеры здесь .
Также хотелось бы отметить, что вы можете улучшить свой сценарий, используя оператор Select Case
, чтобы проверить возвращаемое значение MsgBox
вместо нескольких операторов If...Then...End If
. Также не рекомендуется использовать «магические числа», такие как 6 или 7, - вместо этого используйте соответствующие константы. Например:
Select Case X
Case vbYes
...
Case vbNo
...
Case Else ' vbCancel
...
End Select