Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Total Commander (Часть 8)

Модерирует : gyra, Maz

articlebot (20-03-2016 21:01): Обсуждение продолжается в части 9  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Rodny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
'==============================================================================
' AutoMultiRename3.5.vbs
'
' Переименовать файл или папку (выделенную группу файлов или папок в разных папках)
' заданным образом без дополнительных окон и вопросов
' http://forum.ru-board.com/topic.cgi?forum=5&topic=33904&start=3120#8
' http://forum.ru-board.com/topic.cgi?forum=5&topic=33904&start=4120&limit=1
' Продолжение:
' http://forum.ru-board.com/topic.cgi?forum=5&topic=45288&start=3360#17
'
' Параметры для кнопки:
' %L "новое имя объекта" 1
'
' Если присутствует необязательный третий параметр, то второй параметр считается именем файла, расширение файла сохраняется.
' Если при этом файл с новым именем существует, к имени добавляется "_001", "_002" и т.д. до _999
'
' Путь запуска должен быть пустым!
' Rodny (с)
'==============================================================================
Option Explicit
 
Dim FSO, ListFile, CurrentLine, CurrentFile, FileName, FileExt, FilePath, NewFileName, ExtMode
 
If WScript.Arguments.Count = 0 Then
    MsgBox "Параметры кнопки не заданы!", vbOKOnly + vbExclamation, "Внимание!"
    WScript.Quit
End If
 
If WScript.Arguments.Count = 3 Then
    ExtMode = 1
Else ExtMode = 0
End If
 
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ListFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
NewFileName = WScript.Arguments(1)
 
Do While Not ListFile.AtEndOfStream
    CurrentLine = ListFile.ReadLine
    If Right(CurrentLine, 1) <> "\" Then ' Это файл
        Set CurrentFile = FSO.GetFile(CurrentLine)
    Else ' Это папка
        Set CurrentFile = FSO.GetFolder(CurrentLine)
    End If
        FileName = FSO.GetBaseName(CurrentFile)
        FileExt = FSO.GetExtensionName(CurrentFile)
        FilePath = CurrentFile.ParentFolder
 
        If ExtMode <> 0 Then  
            If UCase(FileName)=UCase(NewFileName) Then
                CurrentFile.Move FilePath & "\" & NewFileName & "." & FileExt
            Else    
                If Not (FSO.FileExists(FilePath & "\" & NewFileName & "." & FileExt)) Then
                    CurrentFile.Move FilePath & "\" & NewFileName & "." & FileExt
                Else
                    CurrentFile.Move FilePath & "\" & GetNewName(FilePath, NewFileName & "." & FileExt)
                End If
            End If
        Else
            If Not (FSO.FileExists(FilePath & "\" & NewFileName) Or FSO.FolderExists(FilePath & "\" & NewFileName)) Then
                CurrentFile.Move FilePath & "\" & NewFileName
            Else
                MsgBox "Файл или папка """ & NewFileName & """ уже существует в папке """ & FilePath & """", vbOKOnly + vbExclamation, "Внимание!"
            End If
        End If
Loop
 
Function GetNewName(Path, Name)
    Dim i, NewName, FileN, FileE
    i = 0
    Do
        i = i + 1
        FileN = FSO.GetBaseName(Path & "\" & Name)
        FileE = FSO.GetExtensionName(Path & "\" & Name)
        If i < 10 Then
            NewName = FileN & "_00" & CStr(i) & "." & FileE
        ElseIf (i >= 10 and i < 100) Then
            NewName = FileN & "_0" & CStr(i) & "." & FileE
        ElseIf (i >= 100 and i < 1000) Then
            NewName = FileN & "_" & CStr(i) & "." & FileE
        End If
    Loop Until Not (FSO.FileExists(Path & "\" & NewName) Or FSO.FolderExists(Path & "\" & NewName))
    GetNewName = NewName
End Function
 
Set FSO = Nothing
Set ListFile = Nothing
Set CurrentFile = Nothing
Wscript.Quit

Всего записей: 2877 | Зарегистр. 28-07-2006 | Отправлено: 02:48 10-08-2014 | Исправлено: Rodny, 14:21 10-08-2014
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Total Commander (Часть 8)
articlebot (20-03-2016 21:01): Обсуждение продолжается в части 9


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru