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 

Автоматическое создание каталога с именем - текущая дата?
Goto page 1, 2, 3  Next
 
Post new topic   This topic is locked: you cannot edit posts or make replies.    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Toni



Joined: 13 Jul 2005
Posts: 26

Post (Separately) Posted: Wed Jul 13, 2005 15:58    Post subject: Автоматическое создание каталога с именем - текущая дата? Reply with quote

Приветствую. Есть такой вопрос: - мне часто приходиться создавать каталоги, именем которого должна быть просто текущая дата. Никто не подскажет, можно ли как-то этото процесс автоматизировать при помощи Тотала? Rolling Eyes
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Wed Jul 13, 2005 16:47    Post subject: Reply with quote

Создай файл *.vbs, повесь его на кнопку или в меню "Запуск" и в параметрах кнопки укажи %P.
Code:
'=====================================================================
' Создание папки с именем системной даты

' В параметрах вызова из 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
Back to top
View user's profile Send private message
Toni



Joined: 13 Jul 2005
Posts: 26

Post (Separately) Posted: Wed Jul 13, 2005 19:06    Post subject: Reply with quote

Только что выяснил, что скрипт не работает, если я пытаюсь создать каталог на FTP. Т.е. захожу на FTP Сервер и пытаюсь там создать каталог... - выдает ошибку:

Строка: 16
Символ: 3
Ошибка: Недопустимое имя или номер файла
Код: 800А0034
Источник: ошибка выполнения Microsoft VBScript

Вот, увы...
Если бы можно было это как-то исправить, буду весьма благода...! Sad
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Wed Jul 13, 2005 19:14    Post subject: Reply with quote

Я с FTP никогда не работал. Для проверки вставь после 14-ой строки:
Code:
MsgBox(NewFold)

Хоть узнать, что скрипт вообще пытается создать.
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Thu Jul 14, 2005 10:49    Post subject: Reply with quote

Batya wrote:
Я с FTP никогда не работал.

FSO предоставляет доступ к файловой системе компьютера, тоесть к дискам, папкам, файлам. Доступ через FTP протокол - это уже совсем из другой оперы. Перепиши лучше скрипт через {F7}->имя новой папки->{ENTER}.
Back to top
View user's profile Send private message
Toni



Joined: 13 Jul 2005
Posts: 26

Post (Separately) Posted: Thu Jul 14, 2005 11:00    Post subject: Reply with quote

Batya

Вставил, не помогло!

Volniy

Спасибо за участие, только, не могли бы Вы по подробнее объяснить - что имеется ввиду? Т.е, что именно надо сделать? Как подставить скрипт к функции клавиши {F7}?
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Thu Jul 14, 2005 13:26    Post subject: Reply with quote

Volniy
Понял. Спасибо за совет.
Вот только как проверять существование папки? FSO.FolderExists тоже ведь не работает (я оставил на всякий случай Smile)?

Toni
Quote:
Вставил, не помогло!

А и не должно было помочь. Просто должно было появиться дилоговое окно с названием создаваемой папки.
По совету Volniy изменил скрипт. Проверь на работоспособность.
Code:
'=====================================================================
' Создание папки с именем системной даты

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

Dim FSO, WS
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WS = WScript.CreateObject("WScript.Shell")

Dim MyPath, MyDate, NewFold, M1
MyPath = WScript.Arguments(0)
MyDate = Date
NewFold = MyPath & MyDate
If Not FSO.FolderExists(NewFold) Then
  Wscript.Sleep 500 
  WS.SendKeys "{F7}" & NewFold & "{Enter}"
  M1 = MsgBox("Создана папка:" & chr(13) & NewFold, vbOKOnly + vbInformation, "Результат")
Else
  M1 = MsgBox("Папка" & chr(13) & NewFold & chr(13) & "уже существует", vbOKOnly + vbExclamation, "Внимание!")
End If
Set FSO = Nothing
Set WS=Nothing
Wscript.Quit
Back to top
View user's profile Send private message
Toni



Joined: 13 Jul 2005
Posts: 26

Post (Separately) Posted: Thu Jul 14, 2005 16:49    Post subject: Reply with quote

Batya

Еще раз спасибо огромное за участие в решение проблемы!

Новый скрипт отрабатывает на FTP, но, создает каталог с именем всего пути.

Вот такой, вот каталог у меня получился:

ftpU##логин"upload.als.ru#Toni#Privat#2005.07.14

Может быть можно это как-то исправить?
Back to top
View user's profile Send private message
Toni



Joined: 13 Jul 2005
Posts: 26

Post (Separately) Posted: Thu Jul 14, 2005 16:57    Post subject: Reply with quote

Batya

Сейчас еще проверил создание новым скриптом каталога локально (на винте, не на FTP), там - тоже самое, имя каталога содержит весь путь, НО! еще и ошибка выдается:

Строка: 13
Символ: 1
Ошибка: Индекс выходит за пределы допустимого диапазона
Код: 800А0009
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Thu Jul 14, 2005 17:35    Post subject: Reply with quote

Блин, ступил, когда скрипт правил, чтоб на FTP работал. Вот нормальный вариант (входные параметры уже не нужны):
Code:
'=======================================
' Создание папки с именем системной даты
'=======================================

Dim WS
Set WS = WScript.CreateObject("WScript.Shell")

Dim NewFold
NewFold = Date
Wscript.Sleep 500
WS.SendKeys "{F7}" & NewFold & "{Enter}"
Set WS=Nothing
Wscript.Quit

Также убрал проверку на наличие каталога - не знаю, как на FTP проверять.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Thu Jul 14, 2005 18:46    Post subject: Reply with quote

А в принципе, можно вообще обойтись одной строчкой Smile
Code:
WScript.CreateObject("WScript.Shell").SendKeys "{F7}" & Date & "{Enter}"
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Thu Jul 14, 2005 18:47    Post subject: Reply with quote

Batya wrote:
Также убрал проверку на наличие каталога - не знаю, как на FTP проверять.

Можно с помощью Helper-а:
Code:
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
Back to top
View user's profile Send private message
Toni



Joined: 13 Jul 2005
Posts: 26

Post (Separately) Posted: Fri Jul 15, 2005 16:20    Post subject: Reply with quote

Спасибо всем (в очередной раз!!) за участие. Теперь все заработало!!! Ну, или, почти все:

Batya

Твои оба (и короткий и длинный варианты) - работают!

Volniy

А, вот, твой вариант выдает ошибку:

Строка: 7
Символ: 39
Ошибка: Предполагается наличие окончания инструкции
Код: 800А0401

Но, тем не менее, еще раз - ВСЕМ, ВСЕМ, ВСЕМ! ОГРОМНЫЙ СЭНКС!!!
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Fri Jul 15, 2005 19:08    Post subject: Reply with quote

Toni wrote:

Volniy
А, вот, твой вариант выдает ошибку:

Строка: 7
Символ: 39

Скрипт 100% рабочий (даже на FTP сервере проверялся). Извини, но ты, видимо перенес его текст кривовато. Это бывает. А строку эту 7-ую можешь просто убрать.
Back to top
View user's profile Send private message
LocKtaR-o-DarK



Joined: 12 Aug 2005
Posts: 349
Location: Москва

Post (Separately) Posted: Sat Aug 13, 2005 23:33    Post subject: Reply with quote

Господа это можно сделать и без скриптов.
И довольно просто.

Для этого создаем новую кнопку

В строке "Команда" пишем
Code:
cmd /c


В строке "Параметры" пишем
Code:
for /f "tokens=1,2,3,4 delims=. " %%a in ('date /t') do md "%%d%%c-%%b-%%a"


Значок на свое усмотрение, конечно же.

Формат отображения тоже.

Удачи.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies.    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group