Страница 1 из 2
Кнопка для создания каталога...
Добавлено: Вт июл 19, 2011 16:44
relaxx
Товарищи, нужна кнопка или команда для создания каталога, где первые две цифры будут дата, а следующие две порядковый номер.Как пример:
1901
1902
1903
и т.д.
Добавлено: Вт июл 19, 2011 20:11
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% и запускай из ком.строки
Добавлено: Ср июл 20, 2011 00:15
Flasher
relaxx писал(а):Как пример:
1901
Какой-то странный пример. Это год или порядковый номер? Или число + порядковый номер? Или порядковый номер без даты?
Добавлено: Ср июл 20, 2011 11:27
relaxx
Первые две цифры это текущая дата, а две другие порядковый номер.
Добавлено спустя 8 минут:
Когда это файл запускаю, всё работает БольшоЕ СПАСИБО за труды,но никак не получается назначить горячие клавиши(.
Добавлено: Ср июл 20, 2011 11:35
Avada
relaxx
Дело, бузусловно, хозяйское, но такой стиль нумерации, ИМХО, визуально плохо воспинимается (хоть бы какой-то разделитель между двумя блоками цифр был!). А выход за пределы текущего месяца в данной группе каталогов считается невозможным?
Насчёт клавиш — для вызова батника создать пользовательскую (em_) команду, а уже для неё назначить клавиши. Описано
в справке и много раз говорилось на форуме, поэтому здесь обсуждение подробностей неуместно.
Добавлено: Ср июл 20, 2011 13:09
relaxx
Всё получилось, но только вот непонятно, папки создаются в директории Total Commanderа, а не там где я желаю(
Добавлено спустя 10 минут:
Разобрался), а как бы сделать так чтоб созданная папка открывалась?9
Добавлено спустя 1 час 14 минут:
Парни, подскажите пожалуйста, как сделать так чтоб созданная папка открывалась....
Добавлено: Ср июл 20, 2011 14:34
Avada
relaxx
Спокойно дождаться ответа невозможно? Будет ещё один такой дубль — закрою тему с замечанием.
Добавлено: Ср июл 20, 2011 15:33
MVV
relaxx, батник небось положил в папку тотала и перетянул на панель инструментов? Очисти поле рабочей папки в кнопке.
Добавлено: Ср июл 20, 2011 16:58
relaxx
Нет, я на него назначил клавиши)
Добавлено: Ср июл 20, 2011 16:59
Flasher
relaxx
Значит, в em_команде "Путь запуска" не очистил.
Добавлено: Ср июл 20, 2011 17:06
relaxx
Да было такое дело, потом сам додумался очистил и всё заработало как положено), но мне надо ещё чтоб созданная папка сразу сама открывалась.
Добавлено: Ср июл 20, 2011 17:56
Tol!k
обновил
Добавлено: Чт июл 21, 2011 00:42
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
В данном случае приращение будет отталкиваться от максимального порядкового номера вместо латания пробелов. ИМХО, это полезней, т.к. после манипуляций с папками (удаление, перемещение) сохраняется логическая последовательность.
Добавлено: Чт июл 21, 2011 12:30
relaxx
Всем спасибо, Tol!k ваши труды меня удовлетворили)
Добавлено: Чт июл 21, 2011 13:40
Flasher
relaxx
Консольные окна предпочтительней?

Кстати, в моём случае нет ограниния до 100 номеров.
Add: Маленькую правку сделал.