Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Windows Script Host 
Author Message
LA_



PostPosted: Wed Jan 10, 2007 16:21    Post subject: переименование файла и копирование нового имени файла в буфе Reply with quote

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

'****************************************************************
' 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
может есть более лучшие варианты?
View user's profile Send private message ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group