LA_
|
Posted: Wed Jan 10, 2007 16:21 Post subject: переименование файла и копирование нового имени файла в буфе |
|
|
написал следующий скрипт для переименования файла и копирования нового имени файла в буфер обмена
(файл переименовывается в соответствии со след логикой:
имяфайла.расширение -> имяфайла.[тэг].расширение
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
может есть более лучшие варианты? |
|