Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Как войти в папку из скрипта в Тотал Коммандер? 
Author Message
Monarch-LFV



PostPosted: Wed Aug 30, 2023 14:14    Post subject: Reply with quote

keramer82
Делюсь своим скриптом VBS для расширенного создания папок, делал сугубо для своих нужд. Можете или пользоваться им, или просто подсмотреть решение:
Code:
' Расширенное создание папок
' Параметры "%P" (в кавычках)

' ============================
' Изменяемые в VBS параметры:
  DelTire = 1 ' удаление " - " (пробел тире пробел) в конце имен папок, 0 - нет, 1 - да
' ============================

On Error Resume Next
set FSO = createobject ("Scripting.FileSystemObject")
DateNow = Year(Date) & "." & Right(0 & Month(Date), 2) & "." & Right(0 & Day(Date), 2) & " - "
Fld = Inputbox("Введите имя папки" & vbnewline & vbnewline & "   * (звездочка) - создание папок по списку из буфера обмена" & vbnewline & "   ** (две звездочки) - то же, но с сохранением порядка", "Расширенное создание папок", DateNow)
if IsEmpty(Fld) then Wscript.Quit

' ===== Обработка буфера обмена
if Fld="*" Or Fld="**" then
  If Fld="**" then num = 1 else num = 0
  Fld = CreateObject("HTMLFile").parentWindow.clipboardData.getData("Text")
  CrLfArr = Array(vbnewline, chr(13), chr(10), "||")
  For Each a In CrLfArr
    Fld = replace(Fld, a, "|")
  Next
  Fld = replace(Fld, Chr(9) & "|", "|")
  Fld = replace(Fld, Chr(9), " - ")
  Fld = replace(Fld, """", "")
End If

' ===== замена запрещенных символов
Sym = "/\*?"":<>"
For i = 1 To Len(Sym)
  Fld = Replace(Fld, Mid(Sym, i, 1), "_")
Next
For i=1 to 100
  Fld = replace(Fld, "  ", " ")
  Fld = replace(Fld, "- -", "-")
Next
Fld = replace(Fld, " - |", "|")

' ===== Основная обработка создания папок
For Each FldName In Split(Fld, "|")
  QuantityFlds = QuantityFlds + 1 ' общий счет количества создаваемых папок
  If num = 1 then
    k = k + 1
    number = right("000" & k, 4) & ". "
  End If
  Err.Number = 0
  if right(FldName, 3) = " - " and DelTire = 1 then FldName=left(FldName, len(FldName) - 3)
  FullpathNewFolder = WScript.Arguments(0) & number & Trim(FldName)
  If FldName <> "" then FSO.CreateFolder FullpathNewFolder
  If Err.Number <> 0 then ErrText = ErrText & vbnewline & "•  " & number & Trim(FldName)
Next

' ===== сообщение об ошибке при создании папок
If ErrText <> "" then
  msgbox "Ошибка создания папок, возможны следующие причины:" & vbnewline & "  1) Папки уже существуют" _
    & vbnewline & "  2) Вы пытаетесь создать папки с одинаковыми именами" & vbnewline _
    & "  3) Превышение максимальной длины пути" & vbnewline & ErrText
  Wscript.Quit
end if

' ===== если созданная папка ОДНА, то автоматический вход в нее в ТС
If QuantityFlds = 1 then 
  Set WshShell = CreateObject("WScript.Shell")
  TCP = WshShell.ExpandEnvironmentStrings("%commander_path%")
  WshShell.run """" & TCP & "\TOTALCMD.EXE"" /O /S """ & FullpathNewFolder & """"
End If
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group