Показать полную графическую версию : [решено] переименовать файл - имя из буфера
kuzmakzrezv1
09-01-2019, 16:50
Всем привет, ребята если не затруднит.
Нужен скрипт - переименовать файл имя из буфера обмена
Нужен скрипт - создать текстовый файл(txt) имя из буфера обмена
написать самому - nicht wissen
переименовать файл имя из буфера обмена »
Option Explicit
Dim strClipboardContent
Dim strSourceFile
Dim strDestFile
With WScript.CreateObject("Scripting.FileSystemObject")
strClipboardContent = Trim(WScript.CreateObject("htmlfile").parentWindow.clipboardData.getData("text"))
strSourceFile = .GetAbsolutePathName(strClipboardContent)
If .FileExists(strSourceFile) Then
strDestFile = Trim(InputBox("Enter new file name", "Enter new file name", strSourceFile))
If Len(strDestFile) > 0 Then
If Not StrComp(strSourceFile, strDestFile, vbTextCompare) = 0 Then
.MoveFile strSourceFile, strDestFile
Else
WScript.Echo "Need new name of file."
WScript.Quit 3
End If
Else
WScript.Echo "User cancel input."
WScript.Quit 2
End If
Else
WScript.Echo "Can't determine Clipboard content [" & strClipboardContent & "] as correct name of existing file."
WScript.Quit 1
End If
End With
WScript.Quit 0
создать текстовый файл(txt) имя из буфера обмена »
Option Explicit
Dim strClipboardContent
Dim strSourceFile
With WScript.CreateObject("Scripting.FileSystemObject")
strClipboardContent = Trim(WScript.CreateObject("htmlfile").parentWindow.clipboardData.getData("text"))
If StrComp(.GetExtensionName(strClipboardContent), "txt", vbTextCompare) = 0 Then
strSourceFile = .GetAbsolutePathName(strClipboardContent)
Else
strSourceFile = .GetAbsolutePathName(strClipboardContent & ".txt")
End If
If Not .FileExists(strSourceFile) Then
With .CreateTextFile(strSourceFile)
.Close
End With
Else
WScript.Echo "Source file [" & strSourceFile & "] already exists."
WScript.Quit 1
End If
End With
WScript.Quit 0
Корректность имён особо не проверяется.
kuzmakzrezv1
10-01-2019, 09:37
Спасибо Iska!
- создать текстовый файл - отлично работает,
- переименование пишет: "Can't determine Clipboard content [mainname] as correct name of existing file."
переименование пишет: "Can't determine Clipboard content [mainname] as correct name of existing file." »
kuzmakzrezv1, покажите скриншот, на котором будет видно, что в текущем для скрипта каталоге наличествует файл с именем «mainname».
kuzmakzrezv1
10-01-2019, 14:07
Iska
я бью из контенстного меню - переименовать папку 1, с mainname в буфере:
https://b.radikal.ru/b28/1901/1e/18bbf9445232t.jpg (http://radikal.ru/fp/8xbpasathufgs)
я бью из контенстного меню - переименовать папку 1, с mainname в буфере: »
Вот. Начинают всплывать занятные подробности, о которых ни слова не было в техзадании.
В какой раздел реестра и как именно Вы добавляете скрипт в контекстное меню. Показывайте и рассказывайте. Только показывайте не на Радикале. Есть нормальные хостинги для изображений. Я пользую Imgur.
kuzmakzrezv1
10-01-2019, 19:01
реестр:
HKEY_CLASSES_ROOT\*\shell\newname
HKEY_CLASSES_ROOT\*\shell\newname\command
значение
C:\Users\Valerio\Favorites\script\newname.bat
HKEY_CLASSES_ROOT\Directory\shell\newname
HKEY_CLASSES_ROOT\Directory\shell\newname\command
значение
C:\Users\Valerio\Favorites\script\newname.bat
батник:
@echo off
start /w wscript.exe "C:\Users\Valerio\Favorites\script\newname.vbs"
батник и скрипт лежат:
C:\Users\Valerio\Favorites\script\
kuzmakzrezv1
10-01-2019, 19:17
http://images.vfl.ru/ii/1547137723/e92fe37d/24895770_s.png (http://vfl.ru/fotos/e92fe37d24895770.html)
и
http://images.vfl.ru/ii/1547137839/f5940a03/24895815_s.png (http://vfl.ru/fotos/f5940a0324895815.html)
kuzmakzrezv1, я про скрипт для переименования.
Впрочем, скажу и про NewName. Исключите пакетный файл совсем, он здесь лишний. Используйте просто «wscript.exe "C:\Users\Valerio\Favorites\script\newname.vbs"».
kuzmakzrezv1
10-01-2019, 19:59
Iska,
NewName - у меня переименование
Используйте просто «wscript.exe "C:\Users\Valerio\Favorites\script\newname.vbs"». » -понял, спасибо
NewName - у меня переименование »
Оригинально. Для меня NewName — создание :).
Примерно так:
Option Explicit
Dim strSourceObject
Dim strSourceFolder
Dim strSourceFile
Dim strClipboardContent
Dim strDestObject
If WScript.Arguments.Count = 1 Then
With WScript.CreateObject("Scripting.FileSystemObject")
strSourceObject = .GetAbsolutePathName(WScript.Arguments.Item(0))
If .FolderExists(strSourceObject) Then
strSourceFolder = strSourceObject
strClipboardContent = Trim(WScript.CreateObject("htmlfile").parentWindow.clipboardData.getData("text"))
strDestObject = Trim(InputBox("Enter new name for folder [" & strSourceFolder & "]:", "Enter new name for folder", strClipboardContent))
If Len(strDestObject) > 0 Then
If Not StrComp(strSourceFolder, strDestObject, vbTextCompare) = 0 Then
.MoveFolder strSourceFolder, strDestObject
Else
WScript.Echo "Need new name of folder."
WScript.Quit 4
End If
Else
WScript.Echo "User cancel input."
WScript.Quit 3
End If
ElseIf .FileExists(strSourceObject) Then
strSourceFile = strSourceObject
strClipboardContent = Trim(WScript.CreateObject("htmlfile").parentWindow.clipboardData.getData("text"))
strDestObject = Trim(InputBox("Enter new name for file [" & strSourceFile & "]:", "Enter new name for file", strClipboardContent))
If Len(strDestObject) > 0 Then
If Not StrComp(strSourceFile, strDestObject, vbTextCompare) = 0 Then
.MoveFile strSourceFile, strDestObject
Else
WScript.Echo "Need new name of file."
WScript.Quit 4
End If
Else
WScript.Echo "User cancel input."
WScript.Quit 3
End If
Else
WScript.Echo "Can't find source file system object [" & WScript.Arguments.Item(0) & "]."
WScript.Quit 2
End If
End With
Else
WScript.Echo "Usage: wscript.exe """ & WScript.ScriptName & """ <Source file system object>"
WScript.Quit 1
End If
WScript.Quit 0
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\ReNameByClipboard]
@="Переименовать из Бу&фера обмена"
[HKEY_CLASSES_ROOT\*\shell\ReNameByClipboard\command]
@="wscript.exe \"C:\\Мои проекты\\0236\\ReNameByClipboard.vbs\" \"%1\""
[HKEY_CLASSES_ROOT\Directory\shell\ReNameByClipboard]
@="Переименовать из Бу&фера обмена"
[HKEY_CLASSES_ROOT\Directory\shell\ReNameByClipboard\command]
@="wscript.exe \"C:\\Мои проекты\\0236\\ReNameByClipboard.vbs\" \"%1\""
Путь к файлу скрипта в файле реестра Вы, естественно, указываете свой.
kuzmakzrezv1
11-01-2019, 08:10
Iska,
http://images.vfl.ru/ii/1547182459/f88aff3e/24901948_s.png (http://vfl.ru/fotos/f88aff3e24901948.html)
и
http://images.vfl.ru/ii/1547182539/3631b448/24901953_s.png (http://vfl.ru/fotos/3631b44824901953.html)
, что то не работает..
-не думал, что все так сложно, может ну ее нафиг и так Вас оторвал от дел..
kuzmakzrezv1, а теперь сравните:
https://i.imgur.com/FXoNphf.png
Обратный слэш является экранирующим символом для значений параметров файла реестра (и, например, используется для экранирования кавычек), посему его надо тоже экранировать, т.е., там где должен быть один обратный слэш — писать надо два.
kuzmakzrezv1
11-01-2019, 13:42
Iska,
исправил слэши -не работает, создал каталоги как у Вас -не работает
https://i.imgur.com/Vtsest5.png
kuzmakzrezv1
11-01-2019, 16:03
Iska,
убрал слэши- wscript.exe "C:\Мои проекты\0236\ReNameByClipboard.vbs" "%1"
при переименовании выскакивает окно, нажимаешь ОК, еще окно -ОК и переименование происходит
https://i.imgur.com/JDydSWg.png
и
https://i.imgur.com/rKhlEhg.png
хз, как избавиться от этих окон..
исправил слэши -не работает, »
Ухххх… Исправлять нужно было в файле реестра. В файле ReNameByClipboard.reg. А не в редакторе реестра.
убрал слэши- wscript.exe "C:\Мои проекты\0236\ReNameByClipboard.vbs" "%1" »
Хорошо. Надеюсь, разобрались: при редактировании файла реестра используем экранирование, при прямом редактировании параметров реестра редактором реестра — не используем.
при переименовании выскакивает окно, нажимаешь ОК, »
Одно окно должно быть — с содержимым буфера обмена, предлагаемым в качестве нового имени файла или папки.
еще окно -ОК »
Какое на этот раз?
и переименование происходит »
Так и должно быть.
и
https://i.imgur.com/rKhlEhg.png»
А вот это окно должно появляться, если Вы нажмёте Cancel в запросе «Enter new name for folder» или оставите/сделаете поле ввода пустым.
kuzmakzrezv1
13-01-2019, 14:43
Iska,
все понял, спасибо за труды Ваши.
kuzmakzrezv1, так работает у Вас, али нет?!
kuzmakzrezv1
13-01-2019, 15:31
Iska,
да работает, окно тока напрягает..
да работает, окно тока напрягает.. »
Какое? Запишите видео, как у Вас работает — от помещения текста в буфер обмена до окончания переименования.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.