Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: Peter, DEMBEL  
Форум NeoBook » Всё о программе NeoBook » Мир NeoBook » VBScript и Необук (Обсуждение и примеры функций)
VBScript и Необук
DEMBELДата: Пт, 16 Октября 2009, 17:07 | Сообщение # 61
Наш дизайнер
Quote (sp3d)
а именно по определеному тегу и по его имени

ладно, учтем...
Quote (sp3d)
вопрос на засыпку, что то я в сети не найду как на вбс переименовать папку?!

Используй обьектную модель WMI
Code
Set objWMIService = GetObject("winmgmts:" _
      & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colFolders = objWMIService.ExecQuery _
      ("Select * from Win32_Directory where name = 'c:\\Folder1'")
For Each objFolder in colFolders
      errResults = objFolder.Rename("C:\Folder2")
      MsgBox "Результат выполнения (код ошибки): " & errResults
Next

Также есть возможность переименовывать все что хочешь рекурсивно.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (sp3d)
а именно по определеному тегу и по его имени

ладно, учтем...
Quote (sp3d)
вопрос на засыпку, что то я в сети не найду как на вбс переименовать папку?!

Используй обьектную модель WMI
Code
Set objWMIService = GetObject("winmgmts:" _
      & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colFolders = objWMIService.ExecQuery _
      ("Select * from Win32_Directory where name = 'c:\\Folder1'")
For Each objFolder in colFolders
      errResults = objFolder.Rename("C:\Folder2")
      MsgBox "Результат выполнения (код ошибки): " & errResults
Next

Также есть возможность переименовывать все что хочешь рекурсивно.


Автор - DEMBEL
Дата добавления - 16 Октября 2009 в 17:07
СергейДата: Пт, 16 Октября 2009, 19:40 | Сообщение # 62
Необукер
Code
!\\.\root\cimv2
что означает это?
 
Сообщение
Code
!\\.\root\cimv2
что означает это?

Автор - Сергей
Дата добавления - 16 Октября 2009 в 19:40
DEMBELДата: Пт, 16 Октября 2009, 19:57 | Сообщение # 63
Наш дизайнер
Это пространство имен (одно из них) в обьектной модели WMI, не обращай внимания
\\. - точка означает локальный компьютер, если требуется управлять компьютером в домене, то вместо точки имя компа в сети.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
СообщениеЭто пространство имен (одно из них) в обьектной модели WMI, не обращай внимания
\\. - точка означает локальный компьютер, если требуется управлять компьютером в домене, то вместо точки имя компа в сети.

Автор - DEMBEL
Дата добавления - 16 Октября 2009 в 19:57
СергейДата: Пт, 16 Октября 2009, 20:06 | Сообщение # 64
Необукер
Code
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colFolders = "[%1]"
errResults = objFolder.Rename("[%2]")
publication.nbSetVar "[%3]", errResults
не работает

Добавлено (16 Октябрь 2009, 20:06)
---------------------------------------------
DEMBEL, у тебя в примере использовался цикл, если юзать в нб, то как запихивать туда последовательность имен?!

Quote
("Select * from Win32_Directory where name = 'c:\\Folder1'")
 
Сообщение
Code
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colFolders = "[%1]"
errResults = objFolder.Rename("[%2]")
publication.nbSetVar "[%3]", errResults
не работает

Добавлено (16 Октябрь 2009, 20:06)
---------------------------------------------
DEMBEL, у тебя в примере использовался цикл, если юзать в нб, то как запихивать туда последовательность имен?!

Quote
("Select * from Win32_Directory where name = 'c:\\Folder1'")

Автор - Сергей
Дата добавления - 16 Октября 2009 в 20:06
DEMBELДата: Пт, 16 Октября 2009, 20:24 | Сообщение # 65
Наш дизайнер
Quote (sp3d)
не работает

то что ты написал и не должно работать, где выборка обьектов "папка" и запрос к ней?
Quote (DEMBEL)
Set colFolders = objWMIService.ExecQuery _       ("Select * from Win32_Directory where name = 'c:\\Folder1'")

а ты просто присваиваешь имя переменной:
Quote (sp3d)
Set colFolders = "[%1]"

в результате у тебя обьект objFolder к которому ты пытаешься применить метод .Rename("[%2]") у тебя пустой. Да даже не в результате, а он просто пустой, где ты видишь что туда чтото присваивается? а в цикле присваивается:

For Each objFolder in colFolders
Для каждого objFolder из коллекции colFolders... - автоматическое присвоение имени objFolder элементам коллекции colFolders при его "вынимании" из коллекции.
Коллекция формируется в результате запроса к WMI, и objFolder - это не самостоятельный обьект в данном случае, это ты его так назвал, а лишь синоним элементов коллекции, собственных методов objFolder.Rename тут быть не может. Метод Rename делает WMI для коллекции colFolders, а раз ты ее не спрашиваешь, то и делать не будет.
Цикл потомучто из другого скрипта вырезал кусок (в нем задавалась маска обектов, поэтому обьект был не один) и требовалось работать с каждым обьектом.

Quote (sp3d)
если юзать в нб, то как запихивать туда последовательность имен?!

что ты имеешь в виду, тебе необходимо переименовать много разных папок? зачем последовательность имен?


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (sp3d)
не работает

то что ты написал и не должно работать, где выборка обьектов "папка" и запрос к ней?
Quote (DEMBEL)
Set colFolders = objWMIService.ExecQuery _       ("Select * from Win32_Directory where name = 'c:\\Folder1'")

а ты просто присваиваешь имя переменной:
Quote (sp3d)
Set colFolders = "[%1]"

в результате у тебя обьект objFolder к которому ты пытаешься применить метод .Rename("[%2]") у тебя пустой. Да даже не в результате, а он просто пустой, где ты видишь что туда чтото присваивается? а в цикле присваивается:

For Each objFolder in colFolders
Для каждого objFolder из коллекции colFolders... - автоматическое присвоение имени objFolder элементам коллекции colFolders при его "вынимании" из коллекции.
Коллекция формируется в результате запроса к WMI, и objFolder - это не самостоятельный обьект в данном случае, это ты его так назвал, а лишь синоним элементов коллекции, собственных методов objFolder.Rename тут быть не может. Метод Rename делает WMI для коллекции colFolders, а раз ты ее не спрашиваешь, то и делать не будет.
Цикл потомучто из другого скрипта вырезал кусок (в нем задавалась маска обектов, поэтому обьект был не один) и требовалось работать с каждым обьектом.

Quote (sp3d)
если юзать в нб, то как запихивать туда последовательность имен?!

что ты имеешь в виду, тебе необходимо переименовать много разных папок? зачем последовательность имен?

Автор - DEMBEL
Дата добавления - 16 Октября 2009 в 20:24
СергейДата: Пт, 16 Октября 2009, 21:06 | Сообщение # 66
Необукер
Quote (DEMBEL)
что ты имеешь в виду, тебе необходимо переименовать много разных папок?
да, это как вариант, допустим папок 10 переминовать
Вот как я сейчас делаю(кстати тоже не работает)
Code
set objWMI = GetObject("winmgmts:\\.\root\cimv2")
set objFile = objWMI.Get("Cim_Datafile='[%1]'")
intRC = objFile.Rename("[%2]")
publication.nbSetVar "[%3]", intRC


Сообщение отредактировано
sp3d - Пт, 16 Октября 2009, 21:07
 
Сообщение
Quote (DEMBEL)
что ты имеешь в виду, тебе необходимо переименовать много разных папок?
да, это как вариант, допустим папок 10 переминовать
Вот как я сейчас делаю(кстати тоже не работает)
Code
set objWMI = GetObject("winmgmts:\\.\root\cimv2")
set objFile = objWMI.Get("Cim_Datafile='[%1]'")
intRC = objFile.Rename("[%2]")
publication.nbSetVar "[%3]", intRC

Автор - Сергей
Дата добавления - 16 Октября 2009 в 21:06
DEMBELДата: Пт, 16 Октября 2009, 21:09 | Сообщение # 67
Наш дизайнер
Ну щас погоди, я тебе моск прочищу...

Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
СообщениеНу щас погоди, я тебе моск прочищу...

Автор - DEMBEL
Дата добавления - 16 Октября 2009 в 21:09
СергейДата: Пт, 16 Октября 2009, 21:14 | Сообщение # 68
Необукер
кста твой пример тоже не робит, ошибку выдает про какоето OLE

Добавлено (16 Октябрь 2009, 21:14)
---------------------------------------------
понимаешь надо из НБ имена папок назначить, а не из вбс

 
Сообщениекста твой пример тоже не робит, ошибку выдает про какоето OLE

Добавлено (16 Октябрь 2009, 21:14)
---------------------------------------------
понимаешь надо из НБ имена папок назначить, а не из вбс


Автор - Сергей
Дата добавления - 16 Октября 2009 в 21:14
DEMBELДата: Пт, 16 Октября 2009, 21:17 | Сообщение # 69
Наш дизайнер
Cim_Datafile='[%1]'")
пути здесь должны содержать двойные \\
поэтому и не робит, и мой пример в т.ч. видимо


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
СообщениеCim_Datafile='[%1]'")
пути здесь должны содержать двойные \\
поэтому и не робит, и мой пример в т.ч. видимо

Автор - DEMBEL
Дата добавления - 16 Октября 2009 в 21:17
СергейДата: Пт, 16 Октября 2009, 21:21 | Сообщение # 70
Необукер
Quote (DEMBEL)
Ну щас погоди, я тебе моск прочищу...

сино тока неругайся :D

Добавлено (16 Октябрь 2009, 21:21)
---------------------------------------------

Quote (DEMBEL)
пути здесь должны содержать двойные \\

ясно, шас проверю
 
Сообщение
Quote (DEMBEL)
Ну щас погоди, я тебе моск прочищу...

сино тока неругайся :D

Добавлено (16 Октябрь 2009, 21:21)
---------------------------------------------

Quote (DEMBEL)
пути здесь должны содержать двойные \\

ясно, шас проверю

Автор - Сергей
Дата добавления - 16 Октября 2009 в 21:21
DEMBELДата: Пт, 16 Октября 2009, 21:23 | Сообщение # 71
Наш дизайнер
Quote (DEMBEL)
Cim_Datafile='[%1]'") пути здесь должны содержать двойные \\ поэтому и не робит, и мой пример в т.ч. видимо

Хотя что я вру, проверил работает все и с одиночными слешами, переименовывает все пучком

Добавлено (16 Октябрь 2009, 21:23)
---------------------------------------------
ты не забыл при objFile.Rename("c:\путь\файл.txt") полный путь к файлу указывать? или токо имя пишешь?


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (DEMBEL)
Cim_Datafile='[%1]'") пути здесь должны содержать двойные \\ поэтому и не робит, и мой пример в т.ч. видимо

Хотя что я вру, проверил работает все и с одиночными слешами, переименовывает все пучком

Добавлено (16 Октябрь 2009, 21:23)
---------------------------------------------
ты не забыл при objFile.Rename("c:\путь\файл.txt") полный путь к файлу указывать? или токо имя пишешь?


Автор - DEMBEL
Дата добавления - 16 Октября 2009 в 21:23
СергейДата: Пт, 16 Октября 2009, 21:24 | Сообщение # 72
Необукер
пока эксперементировал, то нашел как еще мона переименовать, но смущает MoveFolder
Code
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFolder "[%1]" , "[%2]"
 
Сообщениепока эксперементировал, то нашел как еще мона переименовать, но смущает MoveFolder
Code
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFolder "[%1]" , "[%2]"

Автор - Сергей
Дата добавления - 16 Октября 2009 в 21:24
DEMBELДата: Пт, 16 Октября 2009, 21:25 | Сообщение # 73
Наш дизайнер
Quote (sp3d)
да, это как вариант, допустим папок 10 переминовать

щас попробую состряпать и посмотришь в чем там дело было у тебя


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (sp3d)
да, это как вариант, допустим папок 10 переминовать

щас попробую состряпать и посмотришь в чем там дело было у тебя

Автор - DEMBEL
Дата добавления - 16 Октября 2009 в 21:25
СергейДата: Пт, 16 Октября 2009, 21:25 | Сообщение # 74
Необукер
Quote (DEMBEL)
ты не забыл при objFile.Rename("c:\путь\файл.txt") полный путь к файлу указывать? или токо имя пишешь?
:D
ну конечно, емое
 
Сообщение
Quote (DEMBEL)
ты не забыл при objFile.Rename("c:\путь\файл.txt") полный путь к файлу указывать? или токо имя пишешь?
:D
ну конечно, емое

Автор - Сергей
Дата добавления - 16 Октября 2009 в 21:25
DEMBELДата: Пт, 16 Октября 2009, 21:56 | Сообщение # 75
Наш дизайнер
Quote (sp3d)
но смущает MoveFolder

ну дак если пути к файлу будут одинаковые в %1 и %2, то он никуда и не переместит, получается)))

Добавлено (16 Октябрь 2009, 21:27)
---------------------------------------------
принцип то тот же, что Копировать/Перемещать/Переименовать, меняются пути к файлу и все, включая его имя либо нет.

Добавлено (16 Октябрь 2009, 21:33)
---------------------------------------------

Quote (sp3d)
пока эксперементировал, то нашел как еще мона переименовать, но смущает MoveFolder

VBScript работает посредством обращения к существующим обьектным моделям винды. У них существуют одинаковые методы. Здесь ты обращаешься к скриптовой модели WSH,
можно сделать тоже самое через WMI в моем примере. Моделей существует много, в т.ч. для интернет эксплорера, приложений микрософт офис, адобе... поэтому через VBScript можно управлять этим хозяйством, другое дело что некоторые методы моделей он не поймет, т.к. является урезанной версией языка Microsoft Visual Basic (VB), а модели создавались для программирования в VB и VB for Applications (VBA)

Добавлено (16 Октябрь 2009, 21:56)
---------------------------------------------

Quote (sp3d)
понимаешь надо из НБ имена папок назначить, а не из вбс

короче, сяду покопаюсь с этим случаем... тебе надо переименовать 10 папрк. для этого ты в НБ формируешь массив существующих имен папок, массив новых имен и передаешь эти массивы в скрипт, в скрипте в цикле вынимаются элементы массивов, сопоставляются по одному и происходит операция переименовывания, я так понял? Ну это при условии что папки в разных местах и с разными именами, еслиб они были похожие - Folder1 Folder2... то можно было бы проще...


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (sp3d)
но смущает MoveFolder

ну дак если пути к файлу будут одинаковые в %1 и %2, то он никуда и не переместит, получается)))

Добавлено (16 Октябрь 2009, 21:27)
---------------------------------------------
принцип то тот же, что Копировать/Перемещать/Переименовать, меняются пути к файлу и все, включая его имя либо нет.

Добавлено (16 Октябрь 2009, 21:33)
---------------------------------------------

Quote (sp3d)
пока эксперементировал, то нашел как еще мона переименовать, но смущает MoveFolder

VBScript работает посредством обращения к существующим обьектным моделям винды. У них существуют одинаковые методы. Здесь ты обращаешься к скриптовой модели WSH,
можно сделать тоже самое через WMI в моем примере. Моделей существует много, в т.ч. для интернет эксплорера, приложений микрософт офис, адобе... поэтому через VBScript можно управлять этим хозяйством, другое дело что некоторые методы моделей он не поймет, т.к. является урезанной версией языка Microsoft Visual Basic (VB), а модели создавались для программирования в VB и VB for Applications (VBA)

Добавлено (16 Октябрь 2009, 21:56)
---------------------------------------------

Quote (sp3d)
понимаешь надо из НБ имена папок назначить, а не из вбс

короче, сяду покопаюсь с этим случаем... тебе надо переименовать 10 папрк. для этого ты в НБ формируешь массив существующих имен папок, массив новых имен и передаешь эти массивы в скрипт, в скрипте в цикле вынимаются элементы массивов, сопоставляются по одному и происходит операция переименовывания, я так понял? Ну это при условии что папки в разных местах и с разными именами, еслиб они были похожие - Folder1 Folder2... то можно было бы проще...

Автор - DEMBEL
Дата добавления - 16 Октября 2009 в 21:56
СергейДата: Пт, 16 Октября 2009, 22:01 | Сообщение # 76
Необукер
получается это одно и тоже MoveFolder==Rename

Добавлено (16 Октябрь 2009, 22:01)
---------------------------------------------

Quote (DEMBEL)
тебе надо переименовать
может тебе пример скинуть?
 
Сообщениеполучается это одно и тоже MoveFolder==Rename

Добавлено (16 Октябрь 2009, 22:01)
---------------------------------------------

Quote (DEMBEL)
тебе надо переименовать
может тебе пример скинуть?

Автор - Сергей
Дата добавления - 16 Октября 2009 в 22:01
DEMBELДата: Пт, 16 Октября 2009, 22:08 | Сообщение # 77
Наш дизайнер
Quote (sp3d)
может тебе пример скинуть?

ну скинь в лс или сюда, но я уже свой леплю, разберешся


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (sp3d)
может тебе пример скинуть?

ну скинь в лс или сюда, но я уже свой леплю, разберешся

Автор - DEMBEL
Дата добавления - 16 Октября 2009 в 22:08
СергейДата: Пт, 16 Октября 2009, 22:10 | Сообщение # 78
Необукер
Ну если разницы нету между MoveFolder и Rename
то тогда останавлюсь на MoveFolder она переименовывает и нет никаких ошибок
Кста посмотри в скриптах НБ тоже есть функция по переименования файлов наз-ся File Rename
 
СообщениеНу если разницы нету между MoveFolder и Rename
то тогда останавлюсь на MoveFolder она переименовывает и нет никаких ошибок
Кста посмотри в скриптах НБ тоже есть функция по переименования файлов наз-ся File Rename

Автор - Сергей
Дата добавления - 16 Октября 2009 в 22:10
СергейДата: Пт, 16 Октября 2009, 22:14 | Сообщение # 79
Необукер
Quote (DEMBEL)
но я уже свой леплю, разберешся
а ну тогда ладно.
я тебе структуру папок высл, папки пустые

Добавлено (16 Октябрь 2009, 22:14)
---------------------------------------------
в n.dat имена новых

Прикрепления: disk.rar (1.1 Kb)
 
Сообщение
Quote (DEMBEL)
но я уже свой леплю, разберешся
а ну тогда ладно.
я тебе структуру папок высл, папки пустые

Добавлено (16 Октябрь 2009, 22:14)
---------------------------------------------
в n.dat имена новых


Автор - Сергей
Дата добавления - 16 Октября 2009 в 22:14
DEMBELДата: Сб, 17 Октября 2009, 02:18 | Сообщение # 80
Наш дизайнер
е-мое, ну посмотрим что можно сделать...

если все папки находятся внутри одной папки, то существующие имена можно просто "собрать" в скрипте, но буду делать исходя из того что пути абсолютно разные, будешь массив прописывать в НБ руками

или сделать через файл - прописать там имена папок и новые имена и читать его скриптом... короче, раз массивы, то делаю как будто читаем массив из НБ

---------------------------------------------
Чето как-то не так... сначала мутил-мутил массивы, а потом даже массивы внутри скрипта не потребовались, токо надо было правильно сформировать имя необушного массива с переменными для nbGetVar

Set objFSO = CreateObject("Scripting.FileSystemObject")
For count = 1 To 4
strName = nbGetVar("[folder"&count&"]")
strNew = nbGetVar("[newfolder"&count&"]")
objFSO.MoveFolder strName ,strNew
Next

И всего-то делов... В имени переменной префикс str в этом случае обязателен!

Используя .MoveFolder нужно чтобы папка strNew не существовала, иначе произойдет перемещение исходной папки в нее.

При этом предполагается что в необук заданы массивы исходных имен
setvar "[folder1]" "c:\F111"
setvar "[folder2]" "c:\F211"
setvar "[folder3]" "c:\F322"
setvar "[folder4]" "c:\F433"

И массив новых имен для переименования
setvar "[newfolder1]" "c:\F1122"
setvar "[newfolder2]" "c:\F2233"
setvar "[newfolder3]" "c:\F3344"
setvar "[newfolder4]" "c:\F4455"

Счетчик в цикле count - число элементов массива, тут 4

А для конкретно твоего случая так как папки находятся внутри одной папки и их имена похожи с теми на которые надо переименовать (просто убрать часть исходного имени), то задачу можно решить и без НБ-массивов просто получив список подпапок в папке и отрезая/заменяя часть строки имени внутри скрипта.

---------------------------------------------

Quote (sp3d)
Ну если разницы нету между MoveFolder и Rename

Разница есть, поэтому надо следить чтобы
Quote (DEMBEL)
Используя .MoveFolder нужно чтобы папка strNew не существовала, иначе произойдет перемещение исходной папки в нее.

Дело в путях, если .MoveFolder не найдет целевую папку, то переименует исходную, а если найдет целевую, то как раз произойдет перемещение исходной папки в целевую.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениее-мое, ну посмотрим что можно сделать...

если все папки находятся внутри одной папки, то существующие имена можно просто "собрать" в скрипте, но буду делать исходя из того что пути абсолютно разные, будешь массив прописывать в НБ руками

или сделать через файл - прописать там имена папок и новые имена и читать его скриптом... короче, раз массивы, то делаю как будто читаем массив из НБ

---------------------------------------------
Чето как-то не так... сначала мутил-мутил массивы, а потом даже массивы внутри скрипта не потребовались, токо надо было правильно сформировать имя необушного массива с переменными для nbGetVar

Set objFSO = CreateObject("Scripting.FileSystemObject")
For count = 1 To 4
strName = nbGetVar("[folder"&count&"]")
strNew = nbGetVar("[newfolder"&count&"]")
objFSO.MoveFolder strName ,strNew
Next

И всего-то делов... В имени переменной префикс str в этом случае обязателен!

Используя .MoveFolder нужно чтобы папка strNew не существовала, иначе произойдет перемещение исходной папки в нее.

При этом предполагается что в необук заданы массивы исходных имен
setvar "[folder1]" "c:\F111"
setvar "[folder2]" "c:\F211"
setvar "[folder3]" "c:\F322"
setvar "[folder4]" "c:\F433"

И массив новых имен для переименования
setvar "[newfolder1]" "c:\F1122"
setvar "[newfolder2]" "c:\F2233"
setvar "[newfolder3]" "c:\F3344"
setvar "[newfolder4]" "c:\F4455"

Счетчик в цикле count - число элементов массива, тут 4

А для конкретно твоего случая так как папки находятся внутри одной папки и их имена похожи с теми на которые надо переименовать (просто убрать часть исходного имени), то задачу можно решить и без НБ-массивов просто получив список подпапок в папке и отрезая/заменяя часть строки имени внутри скрипта.

---------------------------------------------

Quote (sp3d)
Ну если разницы нету между MoveFolder и Rename

Разница есть, поэтому надо следить чтобы
Quote (DEMBEL)
Используя .MoveFolder нужно чтобы папка strNew не существовала, иначе произойдет перемещение исходной папки в нее.

Дело в путях, если .MoveFolder не найдет целевую папку, то переименует исходную, а если найдет целевую, то как раз произойдет перемещение исходной папки в целевую.

Автор - DEMBEL
Дата добавления - 17 Октября 2009 в 02:18
СергейДата: Сб, 17 Октября 2009, 08:28 | Сообщение # 81
Необукер
ну наваял, я еще больше запутался :D
ладно, потихоньку начну тест :)

Добавлено (17 Октябрь 2009, 08:28)
---------------------------------------------

Quote (DEMBEL)
и их имена похожи
не совсем, если посмотреть папку фотошоп, но это уже частности, спс буду разбиратся :)


Сообщение отредактировано
sp3d - Сб, 17 Октября 2009, 08:29
 
Сообщениену наваял, я еще больше запутался :D
ладно, потихоньку начну тест :)

Добавлено (17 Октябрь 2009, 08:28)
---------------------------------------------

Quote (DEMBEL)
и их имена похожи
не совсем, если посмотреть папку фотошоп, но это уже частности, спс буду разбиратся :)

Автор - Сергей
Дата добавления - 17 Октября 2009 в 08:28
DEMBELДата: Сб, 17 Октября 2009, 16:49 | Сообщение # 82
Наш дизайнер
Quote (sp3d)
ну наваял, я еще больше запутался

А чего тут путаться, делай в НБ два массива имен папок и запускай функцию и все. Если имена массивов возьмешь другие, то поправь их имена в функции.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (sp3d)
ну наваял, я еще больше запутался

А чего тут путаться, делай в НБ два массива имен папок и запускай функцию и все. Если имена массивов возьмешь другие, то поправь их имена в функции.

Автор - DEMBEL
Дата добавления - 17 Октября 2009 в 16:49
СергейДата: Сб, 17 Октября 2009, 16:54 | Сообщение # 83
Необукер
DEMBEL, это окончательный вариант?!
Quote (DEMBEL)
Set objFSO = CreateObject("Scripting.FileSystemObject") For count = 1 To 4 strName = nbGetVar("[folder"&count&"]") strNew = nbGetVar("[newfolder"&count&"]") objFSO.MoveFolder strName ,strNew Next
 
СообщениеDEMBEL, это окончательный вариант?!
Quote (DEMBEL)
Set objFSO = CreateObject("Scripting.FileSystemObject") For count = 1 To 4 strName = nbGetVar("[folder"&count&"]") strNew = nbGetVar("[newfolder"&count&"]") objFSO.MoveFolder strName ,strNew Next

Автор - Сергей
Дата добавления - 17 Октября 2009 в 16:54
DEMBELДата: Сб, 17 Октября 2009, 17:06 | Сообщение # 84
Наш дизайнер
а чего тебе еще надо? конечно.

Добавлено (17 Октябрь 2009, 17:06)
---------------------------------------------
Для каждого из элементов необушных массивов выполняется действие
objFSO.MoveFolder strName ,strNew
в цикле, со счетчиком равным кол-ву элементов, чего еще-то?


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеа чего тебе еще надо? конечно.

Добавлено (17 Октябрь 2009, 17:06)
---------------------------------------------
Для каждого из элементов необушных массивов выполняется действие
objFSO.MoveFolder strName ,strNew
в цикле, со счетчиком равным кол-ву элементов, чего еще-то?


Автор - DEMBEL
Дата добавления - 17 Октября 2009 в 17:06
СергейДата: Сб, 17 Октября 2009, 17:08 | Сообщение # 85
Необукер
Quote (DEMBEL)
а чего тебе еще надо? конечно.
да нет ничего, просто уточнил

Добавлено (17 Октябрь 2009, 17:08)
---------------------------------------------
Это мы загружаем из вбс в НБ массив, а как насчет из вбс в нб (в первом примере)

Сообщение отредактировано
sp3d - Сб, 17 Октября 2009, 17:09
 
Сообщение
Quote (DEMBEL)
а чего тебе еще надо? конечно.
да нет ничего, просто уточнил

Добавлено (17 Октябрь 2009, 17:08)
---------------------------------------------
Это мы загружаем из вбс в НБ массив, а как насчет из вбс в нб (в первом примере)


Автор - Сергей
Дата добавления - 17 Октября 2009 в 17:08
DEMBELДата: Сб, 17 Октября 2009, 17:16 | Сообщение # 86
Наш дизайнер
Quote (sp3d)
Это мы загружаем из вбс в НБ массив, а как насчет из вбс в нб (в первом примере)

Ты хотел сказать из НБ в вбс загружаем массив, а насчет из вбс в НБ, то я и просил такой пример с использованием массивов в скрипте. В твоем примере я начал было мутить скрипт с массивами, а в итоге сократил его до 5 строчек...


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Quote (sp3d)
Это мы загружаем из вбс в НБ массив, а как насчет из вбс в нб (в первом примере)

Ты хотел сказать из НБ в вбс загружаем массив, а насчет из вбс в НБ, то я и просил такой пример с использованием массивов в скрипте. В твоем примере я начал было мутить скрипт с массивами, а в итоге сократил его до 5 строчек...

Автор - DEMBEL
Дата добавления - 17 Октября 2009 в 17:16
СергейДата: Сб, 17 Октября 2009, 17:52 | Сообщение # 87
Необукер
Quote (DEMBEL)
то я и просил такой пример с использованием массивов в скрипте.
хм, я же вроде высылал про регулярки и теги
Code
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Global = True
objRegExp.Multiline = True
objRegExp.Pattern = "<(.*?)>"
Str = "[%1]"
'[%2]
Set objMatches = objRegExp.Execute(Str)
For i=0 To objMatches.Count-1
    strRezult(i) = objMatches.Item(i)
    publication.nbSetVar "[%3]", strRezult
Next
Прикрепления: RegExpVBS.rar (2.1 Kb)


Сообщение отредактировано
sp3d - Сб, 17 Октября 2009, 17:53
 
Сообщение
Quote (DEMBEL)
то я и просил такой пример с использованием массивов в скрипте.
хм, я же вроде высылал про регулярки и теги
Code
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Global = True
objRegExp.Multiline = True
objRegExp.Pattern = "<(.*?)>"
Str = "[%1]"
'[%2]
Set objMatches = objRegExp.Execute(Str)
For i=0 To objMatches.Count-1
    strRezult(i) = objMatches.Item(i)
    publication.nbSetVar "[%3]", strRezult
Next

Автор - Сергей
Дата добавления - 17 Октября 2009 в 17:52
DEMBELДата: Сб, 17 Октября 2009, 18:00 | Сообщение # 88
Наш дизайнер
аа, я и забыл

Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеаа, я и забыл

Автор - DEMBEL
Дата добавления - 17 Октября 2009 в 18:00
СергейДата: Чт, 21 Апреля 2011, 10:51 | Сообщение # 89
Необукер
DEMBEL, есть на вбс скрипт для саздание задачи (job), не могу разобратся с временем, да другие параметры не совсем ясны
Quote
strComputer = "."
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
Set objScheduledJob = objWMIService.Get("Win32_ScheduledJob")
Set objSWbemDateTime = CreateObject("WbemScripting.SWbemDateTime")
objSWbemDateTime.SetVarDate(DateAdd("n", 1, Now()))
Res = objScheduledJob.Create("my_app.exe", objSWbemDateTime.Value, False, 0, 0, True, intJobID)
If Res <> 0 Then
'OK
End If
почитал мсдн, но все равно темный лес, разъяснишь ситуэйшен?
 
СообщениеDEMBEL, есть на вбс скрипт для саздание задачи (job), не могу разобратся с временем, да другие параметры не совсем ясны
Quote
strComputer = "."
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
Set objScheduledJob = objWMIService.Get("Win32_ScheduledJob")
Set objSWbemDateTime = CreateObject("WbemScripting.SWbemDateTime")
objSWbemDateTime.SetVarDate(DateAdd("n", 1, Now()))
Res = objScheduledJob.Create("my_app.exe", objSWbemDateTime.Value, False, 0, 0, True, intJobID)
If Res <> 0 Then
'OK
End If
почитал мсдн, но все равно темный лес, разъяснишь ситуэйшен?

Автор - Сергей
Дата добавления - 21 Апреля 2011 в 10:51
DEMBELДата: Чт, 21 Апреля 2011, 10:55 | Сообщение # 90
Наш дизайнер
там время нужно вписывать не в привычном, а в системном "сыром" формате типа
********123000.000000-420

я позже пример покажу


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениетам время нужно вписывать не в привычном, а в системном "сыром" формате типа
********123000.000000-420

я позже пример покажу


Автор - DEMBEL
Дата добавления - 21 Апреля 2011 в 10:55
Форум NeoBook » Всё о программе NeoBook » Мир NeoBook » VBScript и Необук (Обсуждение и примеры функций)
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск: