Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript (Часть 2)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопросы, задачи и их решения по VBScript.

 
Мануал (english, 600 Кб). | Зеркало
MS Scripting 5.6 (700 КБ), включает последнюю версию VBS. Владельцам XP/2000(?) должен быть не нужен. | Зеркало
Немного на wikiпедии.
Предыдущие части: 1
 
Смежные темы:
Сценарии Windows
Командная строка, батники\сценарии (bat, cmd)
Скрипты KiXtart

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:12 12-07-2011 | Исправлено: Smitis, 23:28 26-02-2018
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Самое то.

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 19:39 29-10-2019
generator324

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a929151
Понял, спасибо!
 
iNNOKENTIY21

Цитата:
Не могу полноценно потестировать сейчас, нету cd-rom

Вы не поверите - у меня его тоже НЕТУ!  CD-ROM который. У меня - Флэшка! Но никто не мешает заменить этот самый "CD-ROM" любым разделом HDD - расположите на нём маркер, и - Вперёд! Видимо, вам тоже 2-х мало - надо брать 3-и! Сообразим?

Цитата:
Замените: wscript.echo...

Всё работает, Благодарю! Уже заменил WScript.Echo на WshShell.Run ВЗАД.
Остаётся только с этим разобраться:

Код:
wscript.echo "devcon.exe update" & " " & """%Temp%\ftdiport.inf FTDIBUS\COMPORT&VID_0403"""

Всего записей: 1102 | Зарегистр. 11-01-2019 | Отправлено: 19:44 29-10-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
generator324

Цитата:
надо брать 3-и!

a929151

Цитата:
Самое то.  

Столько я не выпью
 
У меня дубль или так норм?
   
 

Цитата:
Остаётся только с этим разобраться:  

По той же схеме, только сразу 3 бери

Код:
Const Quote = """"""
wscript.echo "devcon.exe update " & Quote & "%Temp%\ftdiport.inf FTDIBUS\COMPORT&VID_0403" & Quote

Всего записей: 3650 | Зарегистр. 16-08-2012 | Отправлено: 20:03 29-10-2019
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Если тебе одна кавычка на выходе нужна то

Код:
Const Quote = """"

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 20:12 29-10-2019
generator324

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
a929151
Бли-и-и-н! Вы меня ЫНТРЫГУЕТЕ жЫтКО , а проверить не могу - железка ИНТЕРНЕТОМ сейчас занята, на ней РОУТЕР висит...
 
Добавлено:
iNNOKENTIY21

Цитата:
По той же схеме, только сразу 3 бери  

Я же говорил, говорил...

Всего записей: 1102 | Зарегистр. 11-01-2019 | Отправлено: 20:29 29-10-2019
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
generator324
Тогда остаётся только бухать дальше.)

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 20:44 29-10-2019
hyperx32

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! Хотел узнать, возможно с помощью скрипта очистить диск от мусора? Если да, то где можно такой взять?

Всего записей: 43 | Зарегистр. 14-10-2019 | Отправлено: 12:05 30-10-2019
generator324

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
a929151
Кавычки ставятся "не там". Конструкция вида:

Код:
Const Quote = """"
wscript.echo "devcon.exe update " & Quote & "%Temp%\ftdiport.inf FTDIBUS\COMPORT&VID_0403" & Quote

выдаёт такое:

Цитата:
devcon.exe update "%Temp%\ftdiport.inf FTDIBUS\COMPORT&VID_0403"

А нужно чтобы было так:

Цитата:
devcon.exe update %Temp%\ftdiport.inf "FTDIBUS\COMPORT&VID_0403"

В общем, оригинальная строка (которая работает) выглядит, как нетрудно догадаться так:

Цитата:
devcon.exe update ftdiport.inf "FTDIBUS\COMPORT&VID_0403"

Я просто в %Temp% разворачиваю sfx-архив, и оттуда уже ставлю...

Всего записей: 1102 | Зарегистр. 11-01-2019 | Отправлено: 18:33 30-10-2019 | Исправлено: generator324, 18:33 30-10-2019
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В общем, оригинальная строка (которая работает) выглядит, как нетрудно догадаться так:
 

Догадаться о чем ты вчера нес можно только после двух пузырей.
i am not babavanga
 

Код:
Const Quote = """"
Wscript.echo "devcon.exe update ftdiport.inf " & Quote & "FTDIBUS\COMPORT&VID_0403" & Quote
WScript.echo "devcon.exe update " & CreateObject("WScript.Shell").ExpandEnvironmentStrings("%Temp%") & "\ftdiport.inf " & Quote & "FTDIBUS\COMPORT&VID_0403" & Quote

 
ps/ Ты что из папки темп скрипт запускал?

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 19:29 30-10-2019
generator324

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a929151

Цитата:
Догадаться о чем ты вчера нес можно только после двух пузырей.  

Вроде о 3-х разговор шёл, не?

Цитата:
Код:

Ух, Ты!  Благодарю - на вид работает. По крайней мере, строку нужную выдаёт

Цитата:
ps/ Ты что из папки темп скрипт запускал?

Нет. А почему вы так решили?

Всего записей: 1102 | Зарегистр. 11-01-2019 | Отправлено: 19:39 30-10-2019
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
generator324
Если всё ок, предлагаю дебаты закрыть.  

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 20:10 30-10-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
generator324
Цитата:
А я думал, вы только с PS развлекаетесь

Да vbs не мой профиль.
И про %temp% не разглядел
И соображать лучше на троих

Всего записей: 3650 | Зарегистр. 16-08-2012 | Отправлено: 20:28 30-10-2019
generator324

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это снова я
Подскажите, как реализовать на VBScript поиск файла? Имя файла - известно, известно даже "примерное" его нахождение - %WinDir%\WinSxS. Далее - не знаю, может быть где угодно.
Как его найти?

Всего записей: 1102 | Зарегистр. 11-01-2019 | Отправлено: 19:23 09-11-2019
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\Windows\WinSxS")
Set objFolderItems = objFolder.Items()
objFolderItems.Filter 64+128, "имя файла"
For Each file in objFolderItems
    MsgBox file.path
Next

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 19:45 09-11-2019
generator324

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a929151
Благодарю!  
И как долго оно будет его искать? Оно, я так понимаю, сообщение (MsgBox) с указанием пути должно вывести? У меня - тишина! Запустил ещё раз - тоже тишина...
Сообщений об ошибках не было, как и результатов работы.
 
ЗЫ. А если Windows не на C:\Windows? %WinDir% здесь не проходит?

Всего записей: 1102 | Зарегистр. 11-01-2019 | Отправлено: 20:08 09-11-2019
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ЗЫ. А если Windows не на C:\Windows? %WinDir% здесь не проходит?


Код:
objShellApp.Namespace(36).Self.Path & "\WinSxS"

 

Цитата:
objFolderItems.Filter 64+128, "имя файла"

вписать имя искомого файла.
можно часть имени со звёздочками *filename*.ext

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 20:23 09-11-2019
generator324

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a929151

Цитата:
вписать имя искомого файла.  

Так и делал. Только немного по-другому . Взял ваш пример "имя файла", добавил к нему расширение - получилось "имя файла.txt". Затем забросил в первую попавшуюся папку в C:\Windows\WinSxS
Far этот файл благополучно находит, а скрипт - молчит. Вот скрипт, надеюсь я не сильно напортачил:

Код:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\Windows\WinSxS")
Set objFolderItems = objFolder.Items()
objFolderItems.Filter 64+128, "имя файла.txt"
For Each file in objFolderItems
    MsgBox file.path
Next

Файл на диске Цы - ЕСТЬ! Точно:


Всего записей: 1102 | Зарегистр. 11-01-2019 | Отправлено: 20:39 09-11-2019
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
скрипт который я привел в примере ищет файл только в папке C:\Windows\WinSxS
 
Добавлено:
поиск во вложенных папках

Код:
Set objFSO = CreateObject("Scripting.FileSystemObject")
ShowSubFolders objFSO.GetFolder(CreateObject("Shell.Application").Namespace(36).Self.Path & "\WinSxS"), "имяфайла"
 
Sub ShowSubFolders(Folder, filename)
    For Each file In Folder.Files
        Set objCurFile = objFSO.GetFile(file)
        If Instr(ucase(objCurFile.Name), UCase(filename)) Then MsgBox objCurFile.Path
    Next
    For Each Subfolder in Folder.SubFolders
        ShowSubFolders Subfolder, filename
    Next
End Sub

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 21:31 09-11-2019
generator324

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a929151

Цитата:
скрипт который я привел в примере ищет файл только в папке C:\Windows\WinSxS  

Понял. Это я некорректно сформулировал

Цитата:
поиск во вложенных папках  

Этот нашёл тут же
А как теперь сделать, чтобы в случае нахождения, файл удалялся? А если их два (или больше) файла?
 
Добавлено:
Стесняюсь, кстати, спросить "Namespace(36)" - это %WinDir%?

Всего записей: 1102 | Зарегистр. 11-01-2019 | Отправлено: 21:50 09-11-2019
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Then MsgBox objCurFile.Path заменить на Then objCurFile.Delete

Цитата:
А если их два (или больше) файла?

удалит все файлы подходящие под правило.
 

Цитата:
Стесняюсь, кстати, спросить "Namespace(36)" - это %WinDir%?

да

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 21:57 09-11-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript (Часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru