Создать папку формата "yyyy-mm-dd" и войти в неё
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2, 3  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1: Создать папку формата "yyyy-mm-dd" и войти в неё Author: Cortina PostPosted: Sun Sep 28, 2014 19:23
    —
Здравствуйте!
Есть скрипт Create_folder_date.vbs
Создать папку формата "dd-mm-yyyy" и войти в неё
Code:
mydate = Right("0" & Day(date), 2) & "-" & Right("0" & Month(date), 2) & "-" & Year(date)
WScript.CreateObject("WScript.Shell").SendKeys "{F7}" & mydate & "{Enter}" & "{Enter}"

Подскажите, пожалуйста, как сделать дату не dd-mm-yyyy, а yyyy-mm-dd?
Методом высоконаучного тыка ничего поменять не смогла. Скрипт взят, по-моему отсюда, но поиском не нашла. Спасибо!

#2:  Author: Tol!kLocation: Арзамас PostPosted: Sun Sep 28, 2014 19:49
    —
Code:
' mydate = Right("0" & Day(date), 2) & "-" & Right("0" & Month(date), 2) & "-" & Year(date)
mydate = Year(date) & "-" & Right("0" & Month(date), 2) & "-" & Right("0" & Day(date), 2)
WScript.CreateObject("WScript.Shell").SendKeys "{F7}" & mydate & "{Enter}" & "{Enter}"

#3:  Author: Cortina PostPosted: Sun Sep 28, 2014 19:59
    —
Спасибо!

#4:  Author: Tol!kLocation: Арзамас PostPosted: Sun Sep 28, 2014 20:11
    —
если скрипт взят с этого форума, то похоже отсюда http://forum.wincmd.ru/viewtopic.php?t=682


Code:
WScript.CreateObject("WScript.Shell").SendKeys "{F7}" & mydate & "{Enter}" & "{Enter}"
у этого кода недостаток: если папка уже существует, то входа не происходит

#5:  Author: FlasherLocation: Москва PostPosted: Sun Sep 28, 2014 20:45
    —
Cortina
Без скриптов (откроет в любом случае):
Code:
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
Создать папку с именем системной даты и перейти в неё

#6:  Author: Cortina PostPosted: Sun Sep 28, 2014 22:19
    —
Спасибо! Very Happy

#7:  Author: FlasherLocation: Москва PostPosted: Mon Jul 17, 2017 21:37
    —
Lavr wrote:
мне будет полезен код, который создаст каталог с текущей датой с автовходом
Поскольку для кнопки выше есть проблема при смене формата даты в региональных настройках, привожу правильный vbs с параметрами и поддержкой длинных путей (260+):
Code:
'============================ VBS ============================
' Создать папку с именем даты формата YYYY-MM-DD и войти в неё
' Параметры: "%P" <разделитель элементов даты> (прим.: "%P" .)
'=============================================================
Set A = WSH.Arguments : P = A(0) & Year(Date) & A(1) & _
Right("0" & Month(Date), 2) & A(1) & Right("0" & Day(Date), 2)
Set WSS = CreateObject("WScript.Shell")
If Len(P) < 260 Then F = P Else F = "\\?\" & P
With CreateObject("Scripting.FileSystemObject")
  If Not .FolderExists(F) Then .CreateFolder F
  V = .GetFileVersion(WSS.ExpandEnvironmentStrings("%COMMANDER_EXE%"))
End With
If Len(P) < 260 Or (Len(P) > 259 And Left(V, InStr(V, ".") - 1) >= 9) Then _
WSS.Exec "%COMMANDER_EXE% /S /O L=""" & P & """"
Если папка уже существовала, то вход осуществится в любом случае.

#8:  Author: sa PostPosted: Thu Jul 20, 2017 11:41
    —
Скрипт с использованием утилиты TCFS2:
Code:
'================================================
' Создать папку формата YYYY-MM-DD и войти в неё
' Требуется утилита TCFS2
'================================================
 TCFS2 = "%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"
'================================================
 ND = Year(Date) & "-" & Right("0" & Month(Date), 2) & "-" & Right("0" & Day(Date), 2)
 WScript.CreateObject("WScript.Shell").Exec TCFS2 _
 & " /ef ""tcm(907,1) eval(send_wait(`~(" & ND & "{ENTER})`, findwnd(`TCOMBOINPUT`)))" _
 & " eval(send_wait({ENTER}, findwnd(`#32770`),0))" _
 & " set_ini(`%COMMANDER_PATH%\usercmd.ini`, em_Temp, cmd, `cd " & ND & "`) tem(`em_Temp`)"""


Last edited by sa on Tue Jul 25, 2017 12:07; edited 2 times in total

#9:  Author: addhaloka PostPosted: Tue Jul 25, 2017 03:30
    —
Вот ещё варианты с nircmd:
Code:
TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\nircmd.exe" execmd md ~$currdate.yyyy-MM-dd$ &
"%%COMMANDER_EXE%%" /O /S "%P~$currdate.yyyy-MM-dd$"
wcmicons.dll,29
Создать папку yyyy-MM-dd и перейти в неё


-1

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\nircmd.exe" execmd md ~$currdate.yyyy-MM-dd$_~$currtime.HH-mm-ss$ &
"%%COMMANDER_EXE%%" /O /S "%P~$currdate.yyyy-MM-dd$_~$currtime.HH-mm-ss$"
wcmicons.dll,29
Создать папку yyyy-MM-dd_HH-mm-ss и перейти в неё


-1

p.s. Что-то варианты с nircmd не работают, если в пути присутствует юникод. Папка создаётся, но входа в неё не происходит, вместо этого переход на уровень выше папки с юникодным именем. Confused

#10:  Author: FlasherLocation: Москва PostPosted: Tue Jul 25, 2017 10:14
    —
addhaloka
 Это очередной косячок nircmd с Юникодом.
У %ComSpec% /c такой проблемы нет.

#11:  Author: addhaloka PostPosted: Tue Jul 25, 2017 10:49
    —
Flasher wrote:
Это очередной косячок nircmd с Юникодом.

Не знал, что nircmd не дружит с юникодом. Жаль...

#12:  Author: sa PostPosted: Tue Jul 25, 2017 11:17
    —
TC умеет создавать папки и в ZIP-архивах…

#13:  Author: ZZZAlexZZZ PostPosted: Wed Oct 04, 2017 12:49
    —
Flasher
В данном скрипте
ссылка
при вызове из папки с длиной пути > 247 символов вылетает ошибка:
---------------------------
Windows Script Host
---------------------------
Сценарий: D:\TC\WSH\create_folder_date_LongPath.vbs
Строка: 10
Символ: 32
Ошибка: Файл не найден
Код: 800A0035
Источник: Ошибка выполнения Microsoft VBScript

---------------------------
ОК
---------------------------
Как исправить ошибку для длинных путей?
Для коротких путей работает без проблем.

#14:  Author: Zmy PostPosted: Thu Oct 05, 2017 12:01
    —
У меня этот скрипт работает с более 400 символов.

#15:  Author: ZZZAlexZZZ PostPosted: Thu Oct 05, 2017 12:10
    —
Перепроверил.
Скрипт отрабатывает на локальном жестком диске (остановился на 378 символов, работает).
На сетевой папке, подключенной как диск выдает ту же ошибку. Может быть это поможет?



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2, 3  Next  :| |:
Page 1 of 3

Powered by phpBB © 2001, 2005 phpBB Group