PDA

Показать полную графическую версию : [решено] переименовать файл - имя из буфера


Страниц : [1] 2

kuzmakzrezv1
09-01-2019, 16:50
Всем привет, ребята если не затруднит.
Нужен скрипт - переименовать файл имя из буфера обмена
Нужен скрипт - создать текстовый файл(txt) имя из буфера обмена

написать самому - nicht wissen

Iska
10-01-2019, 06:28
переименовать файл имя из буфера обмена »
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."

Iska
10-01-2019, 12:53
переименование пишет: "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)

Iska
10-01-2019, 18:07
я бью из контенстного меню - переименовать папку 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)

Iska
10-01-2019, 19:50
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"». » -понял, спасибо

Iska
11-01-2019, 05:35
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)
, что то не работает..
-не думал, что все так сложно, может ну ее нафиг и так Вас оторвал от дел..

Iska
11-01-2019, 12:41
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

хз, как избавиться от этих окон..

Iska
13-01-2019, 13:51
исправил слэши -не работает, »
Ухххх… Исправлять нужно было в файле реестра. В файле 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,
все понял, спасибо за труды Ваши.

Iska
13-01-2019, 14:53
kuzmakzrezv1, так работает у Вас, али нет?!

kuzmakzrezv1
13-01-2019, 15:31
Iska,
да работает, окно тока напрягает..

Iska
13-01-2019, 17:54
да работает, окно тока напрягает.. »
Какое? Запишите видео, как у Вас работает — от помещения текста в буфер обмена до окончания переименования.




© OSzone.net 2001-2012