VBscript, для каждого l oop и Msgbox в конце - PullRequest
0 голосов
/ 26 марта 2020

Я работаю с VBScript, который ie. отображает и сохраняет информацию об оборудовании компьютера в текстовый файл. Мой VBscript тоже делает что-то другое ie. изменяет некоторые XML файлы. Теперь я хочу использовать программное обеспечение для аппаратного мониторинга с открытым исходным кодом, чтобы я мог регистрировать температуры, напряжения и т. Д. c. пока я провожу тесты на пытки для компьютера. Программное обеспечение для мониторинга регистрирует результаты в формате CSV, поэтому сначала я выясняю, существует ли файл CSV в исходной папке, потому что имя всегда отличается, а затем переименовываю его в имя компьютера (я использую поле ввода, чтобы дать это имя, и вы его не видите в приведенном ниже коде). В любом случае я хочу скопировать файл CSV в другое место назначения. Проблема в том, что если CSV-файл не найден в исходной папке, то MsgBox выскакивает столько раз, сколько файлов в папке dest. папки. Я знаю, что проблема в «Для каждого» l oop, но я не знаю, как я могу обойти это, если CSV-файл не существует. Я хочу, чтобы MsgBox показывал себя только один раз, если CSV-файл не существует. Кто-нибудь может мне помочь с этим?

dim fso, oshell, strProfilePath, oTFldr, fname, WshShell, txt
Set fso = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("WScript.Shell")
strProfilePath = oShell.ExpandEnvironmentStrings("%USERPROFILE%")

If fso.FolderExists(strProfilePath & "\Desktop\Tests\Software\") then
Set oTFldr = fso.getfolder(strProfilePath & "\Desktop\Tests\Software\")
Else
MsgBox "Software folder doesn´t exists!", vbExclamation + vbOKOnly  
End If

For each ofile in oTFldr.Files
If UCase(fso.GetExtensionName(ofile.Name)) = "CSV" then
ofile.name = Compname & ".CSV"
fso.Copyfile strProfilePath & "\Desktop\Tests\Software\" & Compname & ".CSV", "C:\"
exit for
else
MsgBox "Didn´t find any CSV file!", vbExclamation + vbOKOnly
End If
Next

1 Ответ

0 голосов
/ 31 марта 2020
For each ofile in oTFldr.Files
   If UCase(fso.GetExtensionName(ofile.Name)) = "CSV" then
      ofile.name = Compname & ".CSV"
      fso.Copyfile strProfilePath & "\Desktop\Tests\Software\" & Compname & ".CSV", "C:\"
      exit for
   'else
   '    MsgBox "Didn´t find any CSV file!", vbExclamation + vbOKOnly
   End If
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...