Windows Script Host

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Mayskii
Сообщения: 18
Зарегистрирован: Пн сен 04, 2006 01:06

Сообщение Mayskii »

Ребят извиняюсь за жуткий оффтоп, но не могли бы вы сказать где можно скачать документацию по VBScript, желательно на русском , в личку.Ещё раз извиняюсь.
Просто охото что нибудь написать для Total'a посерьёзнее, а то знаю только SendKeys :)

P.S.Только пожалуйста msdn.microsoft.com не предлагать, винда у меня все равно пиратская :)
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Не пропадать же добру :)

Сообщение Volniy »

Код: Выделить всё

'=========================[ Start of file ]===================
'  File:         EraseCDRW.vbs 
'  Description:  Производит очистку RW диска, используя
'                движок Nero версии 6 и выше
'  Installation: Создайте кнопку или команду в меню Запуск TC 
'                Команда: "диск:\путь\к\файлу\EraseCDRW.vbs" 
'                Если приводов у Вас два, то возможно, что
'                (0) понадобится заменить на (1)
'  Copyright:    (c) 2006, Volniy 

Option Explicit
Dim n, d, et
Set n = CreateObject("Nero.Nero")
Set d = n.GetDrives(262172)(0)
d.LoadCD
et=d.CDRWErasingTime(True)
d.EraseCDRW(True)
WScript.Sleep et*1000
d.EjectCD
Set d=Nothing
Set n=Nothing
Wscript.Quit() 
'=========================[  End of file  ]===================
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

Вон куда всё зашло... :D
А всего-то хотелось сидюком управлять из ТС...
Аватара пользователя
Mayskii
Сообщения: 18
Зарегистрирован: Пн сен 04, 2006 01:06

Сообщение Mayskii »

Люди подскажите как сделать комментарий для сразу нескольких файлов.Вот что у меня получилось:

Код: Выделить всё

'==========================================================================
'
' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.0
'
' NAME: GroupDescription.vbs 
'
' AUTHOR: Artem Mayskii
' DATE  : 25.09.2006
'
' COMMENT: Групповое создание комментариев
'
'==========================================================================
Option Explicit

Dim TCS, CopyFClip, Sel, FSO, TextStream, Clip, Descript, Sp
Set TCS = CreateObject("TCScript.Helper")

Sp = " "
Descript = "Описание"
Sel = TCS.GetSrcSelectedFiles(-1)

TCS.SendCommand("cm_CopyNamesToClip")

Clip = TCS.GetTextFromClip

Set FSO = CreateObject("Scripting.FileSystemObject")
Set TextStream = FSO.CreateTextFile("C:\descript.ion")

TextStream.WriteLine Clip & Descript

Но опять же комментарий создаётся только для одного файла :lol: .
Что нужно ещё дописать?


P.S Кто нибудь обязательно спросит а что это за странная переменная Sp ?! :)
Поскольку я не знаю как делать пробелы, я создал такую переменную но её я в скрипте ещё не задействовал.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Mayskii
Mayskii писал(а):Люди подскажите как сделать комментарий для сразу нескольких файлов.
А чем не устраивает мой скрипт?
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Mayskii
Сообщения: 18
Зарегистрирован: Пн сен 04, 2006 01:06

Сообщение Mayskii »

Ух ты спасибо, всему причина моя лень, надо было ветку прочитать.
Будем разбираться :)
Dystopian
Сообщения: 2
Зарегистрирован: Ср окт 18, 2006 02:50

Сообщение Dystopian »

Помогите, пожалуйста. Мне нужна кнопка в тотале, которая копирует полный путь файла в буфер, но все пробелы в пути заменяет на "%20"(для вставки ссылки в чате). Ясно, что без скрипта не обойтись. И очень хочется на чистом VBS. Можно упростить его до того, что он будет просто работатьс буфером, а загнать путь туда я смогу горячей клавишей, но хочется, конечно, все за один клик мыши. С кнопками и ее параметрами я разобрался, но вот выучить еще один язык программирования... Я хорош в С, с VB не сложилось как-то.
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

http://tckb.mega-byte.info/content/view/221/100/

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

Да, перед выполнением преобразования нужно сначала скопировать ссылку в буфер омбена - на это есть cm_CopyFullnamesToClip
Dammer
Сообщения: 6
Зарегистрирован: Чт ноя 02, 2006 17:22

Сообщение Dammer »

Я тут fs плагин слепил - отображает содержимое WMI namespaces, просматаривать метаинформацию класса + все экземпляры класса ( если есть в системе) + позволяет генерить строго типизиваное описание класса для следующих языков Visual Basic, C#, JScript, J#, C++.
Для работы ессено юзает .Net 2.0.

Kому надо - пишем в личку, скину мылом
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

2Dammer
Выкладывай на ifolder.ru. Кому надо, скачает.
Dammer
Сообщения: 6
Зарегистрирован: Чт ноя 02, 2006 17:22

Сообщение Dammer »

WMIExplorer доступен здес:
http://shareua.com/files/9e8eeb/wfx_WMI ... 0.zip.html
Для работы НУЖЕН .Net Framework 2.0 !!!
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

Давно хотел написать, но все забывалось как-то. Есть очень хорошая программа для редактирования и отладки VBS-скриптов. Это VBSEdit. Кстати, в комплекте с ней идет MSDN-овская документация по WSH, скачать которую с сайта MS затруднительно (по известным причинам). В программе есть множество различных готовых шаблонов-заготовок кода.

Чего я ее сейчас вспомнил? Да уж больно хорошо она показывает всю инфу по объекту WMI, как в прочем и по любому другому объекту включенному в скрипт через CreateObject.

Короче, настоятельно рекомендую!
Dammer
Сообщения: 6
Зарегистрирован: Чт ноя 02, 2006 17:22

Сообщение Dammer »

2 Volniy
А лекарственные средства для него есть?
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Если даже и есть, здесь их обсуждать запрещено по п. 5 правил!
Почему же, ё-моё, ты нигде не пишешь "ё"?
LA_
Сообщения: 31
Зарегистрирован: Чт дек 07, 2006 09:21

переименование файла и копирование нового имени файла в буфе

Сообщение LA_ »

написал следующий скрипт для переименования файла и копирования нового имени файла в буфер обмена
(файл переименовывается в соответствии со след логикой:
имяфайла.расширение -> имяфайла.[тэг].расширение

Код: Выделить всё

'****************************************************************
' Copyright (c) LA

' This script renames given in parameter file in accordance with
' the following logic:
'   filename.ext -> filename.[tag].ext
' and copies the result filename to clipboard.

'****************************************************************
' Version:

' 1.0 10 Jan 2007 - Initial release

'****************************************************************
' Parameters

 strTag = "[tag]"

'****************************************************************

' script arguments
Set objArgs = WScript.Arguments
' if argument (filename) is not given, then exit
If WScript.Arguments.Count <> 1 Then
  WScript.Quit
End If

Set objFSO = CreateObject("Scripting.FileSystemObject")
' get file passed as first arguments to the script
Set objFile = objFSO.GetFile(objArgs(0))
' create new file name as path + filename + [tag] + extension
strNewName = objFSO.GetParentFolderName(objFile) & "\" & objFSO.GetBaseName(objFile) & "." & strTag & "." & objFSO.GetExtensionName(objFile)
objFSO.MoveFile objArgs(0), strNewName

' copy new file name to clipboard with IE usage
'Set objIE = CreateObject("InternetExplorer.Application")
'objIE.Navigate("about:blank")
'objIE.document.parentwindow.clipboardData.SetData "text", strNewName
'objIE.Quit

' copy new file name to clipboard by sending Ctrl+Shift+Ins
' refreshing panel before copying
WScript.CreateObject("WScript.Shell").SendKeys "^{R}"
WScript.Sleep(100)
WScript.CreateObject("WScript.Shell").SendKeys "^+{INSERT}"

' copy new file name to clipboard with TCHelper usage
'Set TCS = CreateObject("TCScript.Helper")
'TCS.cm_CopyNamesToClip
первая часть (переименование) работает отлично, а вот со второй частью (копирование имени в буфер) возникли проблемы - я нашел три варианта, как можно копировать (через IE, посылая комбинацию ctrl+shift+ins TC и через TCHelper)
какой предпочесть? если используется первый (через IE), то IE запрашивает разрешение скопировать данные в буфер, что не есть хорошо.
если второй (посылая комбинацию ctrl+shift+ins TC), то команда cm_CopyNamesToClip должна быть назначена на ctrl+shift+ins. И что произойдет, если во время выполнения скрипта я переключусь на другое приложение? ctrl+shift+ins будет послано куда-то не туда?
последний вариант, наверное, наилучший, но не позволит использовать скрипт вне TC (как, впрочем, и второй). ну и не нравится необходимостью установки TCHelper'a
может есть более лучшие варианты?
Ответить