Кнопка для создания каталога...

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

relaxx
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 22:00

Кнопка для создания каталога...

Сообщение relaxx »

Товарищи, нужна кнопка или команда для создания каталога, где первые две цифры будут дата, а следующие две порядковый номер.Как пример:
1901
1902
1903
и т.д.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Код: Выделить всё

@echo off &setlocal enableextensions &set /a cnt=1
rem Создание каталога: первые две цифры дата, следующие две порядковый номер
rem Если дата в формате DD.MM.YY
for /f "tokens=1 delims=-/." %%d in ("%date%") do set "d=0%%d"
:loop
set /a cnt+=1 &set "n=0%cnt%"
if "%cnt%"=="101" (title Over 100 :^( &pause >nul &exit)
set "new=%d:~-2%%n:~-2%" &md "%new%" 2>nul &&(
"%commander_path%\totalcmd.exe" /O /S /L="%cd%\%new%" &exit) ||goto :loop
Сохрани как текст с расш. .CMD
повесь на кнопку/команду
или помести в папку, перечисленную в %Path% и запускай из ком.строки
Последний раз редактировалось Tol!k Ср июл 20, 2011 17:55, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

relaxx писал(а):Как пример:
1901
Какой-то странный пример. Это год или порядковый номер? Или число + порядковый номер? Или порядковый номер без даты?
relaxx
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 22:00

Сообщение relaxx »

Первые две цифры это текущая дата, а две другие порядковый номер.

Добавлено спустя 8 минут:

Когда это файл запускаю, всё работает БольшоЕ СПАСИБО за труды,но никак не получается назначить горячие клавиши(.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

relaxx
Дело, бузусловно, хозяйское, но такой стиль нумерации, ИМХО, визуально плохо воспинимается (хоть бы какой-то разделитель между двумя блоками цифр был!). А выход за пределы текущего месяца в данной группе каталогов считается невозможным?
Насчёт клавиш — для вызова батника создать пользовательскую (em_) команду, а уже для неё назначить клавиши. Описано в справке и много раз говорилось на форуме, поэтому здесь обсуждение подробностей неуместно.
Даже самая богатая фантазия
Не представит себе наши безобразия.
relaxx
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 22:00

Сообщение relaxx »

Всё получилось, но только вот непонятно, папки создаются в директории Total Commanderа, а не там где я желаю(

Добавлено спустя 10 минут:

Разобрался), а как бы сделать так чтоб созданная папка открывалась?9

Добавлено спустя 1 час 14 минут:

Парни, подскажите пожалуйста, как сделать так чтоб созданная папка открывалась....
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

relaxx
Спокойно дождаться ответа невозможно? Будет ещё один такой дубль — закрою тему с замечанием.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

relaxx, батник небось положил в папку тотала и перетянул на панель инструментов? Очисти поле рабочей папки в кнопке.
relaxx
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 22:00

Сообщение relaxx »

Нет, я на него назначил клавиши)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

relaxx
Значит, в em_команде "Путь запуска" не очистил.
relaxx
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 22:00

Сообщение relaxx »

Да было такое дело, потом сам додумался очистил и всё заработало как положено), но мне надо ещё чтоб созданная папка сразу сама открывалась.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

обновил
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Для разнообразия (путь запуска также очистить):

Код: Выделить всё

' Создание папки с именем "<текущий день месяца><порядковый №>" и переход в нее в TC
'===============================================================
Dim WSH
Set WSH = WScript.CreateObject("WScript.Shell")
With CreateObject("Scripting.FileSystemObject")
  Set FF = .GetFolder(WSH.CurrentDirectory)
  If Day(date) > 9 Then
    D = Day(date)
  Else
    D = "0" & Day(date)
  End If
  If .FolderExists(FF & "\" & D & "01") Then 
     For Each F in FF.SubFolders
       N = F.Name
       If IsNumeric(N) And Left(N,2) = Trim(D) And Len(N) > 3 Then
         If  Mid(N,3,1) = 0 And Len(N) > 4 Then
           If .FolderExists(FF&"\"&Left(N,4)) Then A = Mid(N,3,2)
         ElseIf Len(N) = 4 Then A = Mid(N,3)
         Else
           B = Mid(N,3)
           A = Abs(Mid(N,3))
         End If
         If Max < A Then Max = A
         If Mx < B Then Mx = B
       End If
     Next
     If Max >= 09 Then
       If Mx < 100 Then
         Folder = FF & "\" & Trim(D) & Abs(Max)+1
       Else
         Folder = FF & "\" & Trim(D) & Abs(Mx)+1 
       End If
     Else
       Folder = FF & "\" & Trim(D) & Left(Max,1) & Abs(Mid(Max,2))+1
     End If
  Else
     Folder = FF & "\" & Trim(D) & "01"
  End If  
  .CreateFolder(Folder)
End With
WSH.Exec"%COMMANDER_PATH%\totalcmd.exe /o /s /l=""" & Folder & """"
Set WSH = Nothing
WScript.Quit
В данном случае приращение будет отталкиваться от максимального порядкового номера вместо латания пробелов. ИМХО, это полезней, т.к. после манипуляций с папками (удаление, перемещение) сохраняется логическая последовательность.
Последний раз редактировалось Flasher Пт июл 22, 2011 02:14, всего редактировалось 3 раза.
relaxx
Сообщения: 11
Зарегистрирован: Пн окт 29, 2007 22:00

Сообщение relaxx »

Всем спасибо, Tol!k ваши труды меня удовлетворили)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

relaxx
Консольные окна предпочтительней? :wink:
:!: Кстати, в моём случае нет ограниния до 100 номеров.

Add: Маленькую правку сделал.
Последний раз редактировалось Flasher Чт июл 21, 2011 16:11, всего редактировалось 1 раз.
Ответить