Автоматическое создание каталога с именем - текущая дата?
Модераторы: Моторокер, Avada, CaptainFlint, Nik, d-view
Автоматическое создание каталога с именем - текущая дата?
Приветствую. Есть такой вопрос: - мне часто приходиться создавать каталоги, именем которого должна быть просто текущая дата. Никто не подскажет, можно ли как-то этото процесс автоматизировать при помощи Тотала? 
Создай файл *.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Только что выяснил, что скрипт не работает, если я пытаюсь создать каталог на FTP. Т.е. захожу на FTP Сервер и пытаюсь там создать каталог... - выдает ошибку:
Строка: 16
Символ: 3
Ошибка: Недопустимое имя или номер файла
Код: 800А0034
Источник: ошибка выполнения Microsoft VBScript
Вот, увы...
Если бы можно было это как-то исправить, буду весьма благода...!
Строка: 16
Символ: 3
Ошибка: Недопустимое имя или номер файла
Код: 800А0034
Источник: ошибка выполнения Microsoft VBScript
Вот, увы...
Если бы можно было это как-то исправить, буду весьма благода...!
Я с FTP никогда не работал. Для проверки вставь после 14-ой строки:
Хоть узнать, что скрипт вообще пытается создать.
Код: Выделить всё
MsgBox(NewFold)Volniy
Понял. Спасибо за совет.
Вот только как проверять существование папки? FSO.FolderExists тоже ведь не работает (я оставил на всякий случай
)?
Toni
По совету Volniy изменил скрипт. Проверь на работоспособность.
Понял. Спасибо за совет.
Вот только как проверять существование папки? FSO.FolderExists тоже ведь не работает (я оставил на всякий случай
Toni
А и не должно было помочь. Просто должно было появиться дилоговое окно с названием создаваемой папки.Вставил, не помогло!
По совету Volniy изменил скрипт. Проверь на работоспособность.
Код: Выделить всё
'=====================================================================
' Создание папки с именем системной даты
' В параметрах вызова из 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Блин, ступил, когда скрипт правил, чтоб на FTP работал. Вот нормальный вариант (входные параметры уже не нужны):
Также убрал проверку на наличие каталога - не знаю, как на FTP проверять.
Код: Выделить всё
'=======================================
' Создание папки с именем системной даты
'=======================================
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А в принципе, можно вообще обойтись одной строчкой
Код: Выделить всё
WScript.CreateObject("WScript.Shell").SendKeys "{F7}" & Date & "{Enter}"Можно с помощью Helper-а:Batya писал(а):Также убрал проверку на наличие каталога - не знаю, как на FTP проверять.
Код: Выделить всё
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
Спасибо всем (в очередной раз!!) за участие. Теперь все заработало!!! Ну, или, почти все:
Batya
Твои оба (и короткий и длинный варианты) - работают!
Volniy
А, вот, твой вариант выдает ошибку:
Строка: 7
Символ: 39
Ошибка: Предполагается наличие окончания инструкции
Код: 800А0401
Но, тем не менее, еще раз - ВСЕМ, ВСЕМ, ВСЕМ! ОГРОМНЫЙ СЭНКС!!!
Batya
Твои оба (и короткий и длинный варианты) - работают!
Volniy
А, вот, твой вариант выдает ошибку:
Строка: 7
Символ: 39
Ошибка: Предполагается наличие окончания инструкции
Код: 800А0401
Но, тем не менее, еще раз - ВСЕМ, ВСЕМ, ВСЕМ! ОГРОМНЫЙ СЭНКС!!!
- LocKtaR-o-DarK
- Сообщения: 349
- Зарегистрирован: Пт авг 12, 2005 04:20
- Откуда: Москва
- Контактная информация:
Господа это можно сделать и без скриптов.
И довольно просто.
Для этого создаем новую кнопку
В строке "Команда" пишем
В строке "Параметры" пишем
Значок на свое усмотрение, конечно же.
Формат отображения тоже.
Удачи.
И довольно просто.
Для этого создаем новую кнопку
В строке "Команда" пишем
Код: Выделить всё
cmd /cКод: Выделить всё
for /f "tokens=1,2,3,4 delims=. " %%a in ('date /t') do md "%%d%%c-%%b-%%a"Формат отображения тоже.
Удачи.