Total Commander Knowledge Base

Есть вопрос?

Поищите ответ в самой большой русскоязычной базе знаний по Total Commander!

Создание каталога с текущей датой в названии

Q: Есть такой вопрос: - мне часто приходиться создавать каталоги, именем которых должна быть просто текущая дата. Никто не подскажет, можно ли как-то этот процесс автоматизировать при помощи Тотала?
A: Создай файл *.vbs, повесь его на кнопку или в меню "Запуск" и в параметрах кнопки укажи %P.

'=====================================================================
' Создание папки с именем по системной дате

' В параметрах вызова из TC должно быть прописано:
' %P
'=====================================================================

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")

Dim MyPath, MyDate, NewFold, M1
MyPath = WScript.Arguments(0)
MyDate = Date
NewFold = MyPath & MyDate
If Not FSO.FolderExists(NewFold) Then
FSO.CreateFolder(NewFold)
M1 = MsgBox("Создана папка:" & chr(13) & NewFold, vbOKOnly + vbInformation, "Результат")
Else
M1 = MsgBox("Папка" & chr(13) & NewFold & chr(13) & "уже существует", vbOKOnly + vbExclamation,"Внимание!")
End If
Set FSO = Nothing
Wscript.Quit

Код работает только на локальных дисках.
Код работающий везде, где TC может создавать папки (в т.ч. и на FTP):

WScript.CreateObject("WScript.Shell").SendKeys "{F7}" & Date & "{Enter}"

Для изменения формата даты замени в скрипте строку

MyDate = Date

на свой вариант, например:

MyDate = Day(Date) & "." & Month(Date) & "." & Year(Date)

тут уже разделены день, год и месяц, и можно их комбинировать как угодно.

Для добавления "0" к месяцам и датам пишем:

mydate = "FeedBack " & Year(date) & "." & Right("0" & Month(date), 2) & "." & Right("0" & Day(date), 2)

Batya

A: Можно с помощью Helper-а:

Set TCS = CreateObject("TCSCRIPT.Helper")
NewFold = Date
TCS.SendCommand "cm_SelectAll"
All= TCS.GetSrcSelectedFiles
For Each a In ALL
If StrComp(a, NewFold & "\",1)=0 Then
MsgBox "Папка" & chr(13) & NewFold & chr(13) & "уже существует", vbExclamation, "Внимание!"
Wscript.Quit
End If
Next
TCS.SendCommand "cm_MkDir",False
TCS.SendKeystroke CStr(NewFold)
TCS.SendKeystroke "{ENTER}"
Set TCS=Nothing
Wscript.Quit

Volniy

A: Господа это можно сделать и без скриптов. И довольно просто. Для этого создаем новую кнопку, и в строке "Команда" пишем:

cmd /c

В строке "Параметры" пишем

for /f "tokens=1,2,3,4 delims=. " %%a in ('date /t') do md "%%d%%c-%%b-%%a"

Значок на свое усмотрение, конечно же. Формат отображения тоже. Параметры правим как больше нравится. Удачи.

LocKtaR-o-DarK

A: Вариант создания папки YYYY.MM.DD без отображения консоли и с автовходом в папку (используется утилита Nircmd):

Код кнопки
TOTALCMD#BAR#DATA:
%COMMANDER_PATH%\Utils\nircmd\nircmd.exe execmd md "%date:~6%-%date:~3,2%-%date:~0,2%" & "%COMMANDER_EXE%" /O /S
"%P%%date:~6%%-%%date:~3,2%%-%%date:~0,2%%"
wcmicons.dll,83
Создать папку с именем системной даты и перейти в неё

-1

Flasher

A: Создание каталога с именем вида "дата+время" (кнопка):

Код кнопки
TOTALCMD#BAR#DATA:
cmd /c md %date:~0,2%.%date:~3,2%.%date:~6,4%-%time:~0,2%.%time:~3,2%.%time:~6,2%

C:\Totalcmd\TOTALCMD.EXE,1
Создать каталог, с текущей датой и временем в имени, в активной панели

1
-1

По ответам форума http://forum.wincmd.ru