PDA

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


Dexter VVM
11-12-2020, 14:02
Привет. Нашел в теме (http://forum.oszone.net/thread-338632-3.html) скрипт, но он переименовывает файл полностью, что убирает расширение. Скажите, пожалуйста, как переименовать с сохранением расширения файла?


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

Iska
11-12-2020, 15:16
Dexter VVM, там иное.

Опишите полностью, что Вам нужно.

Dexter VVM
11-12-2020, 17:12
Iska, нужен пункт в контекстном меню файлов и папок "дать имя из буфера", которой запускает скрипт, меняющий имя файла на текст из буфера обмена и не меняющий/убирающий его расширение. Приведённый скрипт из другой темы переименовывает файл полностью, удаляя расширение.

Iska
11-12-2020, 20:47
Dexter VVM, ясно. Не знаю, как Вам, а по мне F2, Shift-Insert, Enter всяко быстрее выбора из контекстного меню.

Но держите:
Option Explicit

Dim strSourceFile
Dim strNewName


If WScript.Arguments.Count = 1 Then
With WScript.CreateObject("Scripting.FileSystemObject")
strSourceFile = .GetAbsolutePathName(WScript.Arguments.Item(0))

If .FileExists(strSourceFile) Then
strNewName = Trim(WScript.CreateObject("htmlfile").parentWindow.clipboardData.getData("text"))

If Len(strNewName) > 0 Then
If Not StrComp(strSourceFile, strNewName, vbTextCompare) = 0 Then
.MoveFile strSourceFile, strNewName & "." & .GetExtensionName(strSourceFile)
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 [" & WScript.Arguments.Item(0) & "]."
WScript.Quit 2
End If
End With
Else
WScript.Echo "Usage: wscript.exe """ & WScript.ScriptName & """ <Source file>"
WScript.Quit 1
End If

WScript.Quit 0

Dexter VVM
12-12-2020, 03:58
Iska, спасибо. Из контекстного меню привычнее.




© OSzone.net 2001-2012