kuzmakzrezv1 |
09-01-2019 16:50 2850915 |
переименовать файл - имя из буфера
Всем привет, ребята если не затруднит.
Нужен скрипт - переименовать файл имя из буфера обмена
Нужен скрипт - создать текстовый файл(txt) имя из буфера обмена
написать самому - nicht wissen
|
Цитата:
Цитата kuzmakzrezv1
переименовать файл имя из буфера обмена »
|
Скрытый текст
Код:
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
Цитата:
Цитата kuzmakzrezv1
создать текстовый файл(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 2851114 |
Спасибо Iska!
- создать текстовый файл - отлично работает,
- переименование пишет: "Can't determine Clipboard content [mainname] as correct name of existing file."
|
Цитата:
Цитата kuzmakzrezv1
переименование пишет: "Can't determine Clipboard content [mainname] as correct name of existing file." »
|
kuzmakzrezv1, покажите скриншот, на котором будет видно, что в текущем для скрипта каталоге наличествует файл с именем «mainname».
|
kuzmakzrezv1 |
10-01-2019 14:07 2851160 |
Iska
я бью из контенстного меню - переименовать папку 1, с mainname в буфере:

|
Цитата:
Цитата kuzmakzrezv1
я бью из контенстного меню - переименовать папку 1, с mainname в буфере: »
|
Вот. Начинают всплывать занятные подробности, о которых ни слова не было в техзадании.
В какой раздел реестра и как именно Вы добавляете скрипт в контекстное меню. Показывайте и рассказывайте. Только показывайте не на Радикале. Есть нормальные хостинги для изображений. Я пользую Imgur.
|
kuzmakzrezv1 |
10-01-2019 19:01 2851252 |
реестр:
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 2851255 |

и

|
kuzmakzrezv1, я про скрипт для переименования.
Впрочем, скажу и про NewName. Исключите пакетный файл совсем, он здесь лишний. Используйте просто «wscript.exe "C:\Users\Valerio\Favorites\script\newname.vbs"».
|
kuzmakzrezv1 |
10-01-2019 19:59 2851268 |
Iska,
NewName - у меня переименование
Цитата:
Цитата Iska
Используйте просто «wscript.exe "C:\Users\Valerio\Favorites\script\newname.vbs"». »
|
-понял, спасибо
|
Цитата:
Цитата kuzmakzrezv1
NewName - у меня переименование »
|
Оригинально. Для меня NewName — создание :).
Примерно так:
C:\Мои проекты\0236\ReNameByClipboard.vbs
Код:
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
ReNameByClipboard.reg
Код:
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 2851362 |
Iska,

и

, что то не работает..
-не думал, что все так сложно, может ну ее нафиг и так Вас оторвал от дел..
|
kuzmakzrezv1, а теперь сравните:
Обратный слэш является экранирующим символом для значений параметров файла реестра (и, например, используется для экранирования кавычек), посему его надо тоже экранировать, т.е., там где должен быть один обратный слэш — писать надо два.
|
kuzmakzrezv1 |
11-01-2019 13:42 2851408 |
Iska,
исправил слэши -не работает, создал каталоги как у Вас -не работает
|
kuzmakzrezv1 |
11-01-2019 16:03 2851423 |
Iska,
убрал слэши- wscript.exe "C:\Мои проекты\0236\ReNameByClipboard.vbs" "%1"
при переименовании выскакивает окно, нажимаешь ОК, еще окно -ОК и переименование происходит
и
хз, как избавиться от этих окон..
|
Цитата:
Цитата kuzmakzrezv1
исправил слэши -не работает, »
|
Ухххх… Исправлять нужно было в файле реестра. В файле ReNameByClipboard.reg. А не в редакторе реестра.
Цитата:
Цитата kuzmakzrezv1
убрал слэши- wscript.exe "C:\Мои проекты\0236\ReNameByClipboard.vbs" "%1" »
|
Хорошо. Надеюсь, разобрались: при редактировании файла реестра используем экранирование, при прямом редактировании параметров реестра редактором реестра — не используем.
Цитата:
Цитата kuzmakzrezv1
при переименовании выскакивает окно, нажимаешь ОК, »
|
Одно окно должно быть — с содержимым буфера обмена, предлагаемым в качестве нового имени файла или папки.
Какое на этот раз?
Цитата:
Цитата kuzmakzrezv1
и переименование происходит »
|
Так и должно быть.
А вот это окно должно появляться, если Вы нажмёте Cancel в запросе «Enter new name for folder» или оставите/сделаете поле ввода пустым.
|
kuzmakzrezv1 |
13-01-2019 14:43 2851836 |
Iska,
все понял, спасибо за труды Ваши.
|
kuzmakzrezv1, так работает у Вас, али нет?!
|
kuzmakzrezv1 |
13-01-2019 15:31 2851848 |
Iska,
да работает, окно тока напрягает..
|
Цитата:
Цитата kuzmakzrezv1
да работает, окно тока напрягает.. »
|
Какое? Запишите видео, как у Вас работает — от помещения текста в буфер обмена до окончания переименования.
|
kuzmakzrezv1 |
13-01-2019 18:49 2851892 |
|
kuzmakzrezv1, так какое окно Вам не нравится? Само окно запроса на подтверждение переименования? Хотите, чтобы это происходило молча?
|
kuzmakzrezv1 |
13-01-2019 18:59 2851902 |
Iska,
Цитата:
Хотите, чтобы это происходило молча?
|
да
|
Попробуйте так (не проверялось):
Скрытый текст
Код:
Option Explicit
Dim strSourceObject
Dim strSourceFolder
Dim strSourceFile
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
strDestObject = Trim(WScript.CreateObject("htmlfile").parentWindow.clipboardData.getData("text"))
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
strDestObject = Trim(WScript.CreateObject("htmlfile").parentWindow.clipboardData.getData("text"))
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
|
kuzmakzrezv1 |
13-01-2019 19:24 2851915 |
Iska,
ВСЕ РАБОТАЕТ, БОЛЬШОЕ СПАСИБО!
|
Время: 00:47.
© OSzone.net 2001-