View previous topic :: View next topic |
Author |
Message |
Cortina
Joined: 19 Jun 2012 Posts: 9
|
(Separately) Posted: Sun Sep 28, 2014 19:23 Post subject: Создать папку формата "yyyy-mm-dd" и войти в неё |
|
|
Здравствуйте!
Есть скрипт 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?
Методом высоконаучного тыка ничего поменять не смогла. Скрипт взят, по-моему отсюда, но поиском не нашла. Спасибо! |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun Sep 28, 2014 19:49 Post subject: |
|
|
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}"
|
|
|
Back to top |
|
|
Cortina
Joined: 19 Jun 2012 Posts: 9
|
(Separately) Posted: Sun Sep 28, 2014 19:59 Post subject: |
|
|
Спасибо! |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun Sep 28, 2014 20:11 Post subject: |
|
|
если скрипт взят с этого форума, то похоже отсюда http://forum.wincmd.ru/viewtopic.php?t=682
Code: | WScript.CreateObject("WScript.Shell").SendKeys "{F7}" & mydate & "{Enter}" & "{Enter}" | у этого кода недостаток: если папка уже существует, то входа не происходит |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Sep 28, 2014 20:45 Post subject: |
|
|
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
Создать папку с именем системной даты и перейти в неё |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Cortina
Joined: 19 Jun 2012 Posts: 9
|
(Separately) Posted: Sun Sep 28, 2014 22:19 Post subject: |
|
|
Спасибо! |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jul 17, 2017 21:37 Post subject: |
|
|
Поскольку для кнопки выше есть проблема при смене формата даты в региональных настройках, привожу правильный 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 & """" | Если папка уже существовала, то вход осуществится в любом случае. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2624
|
(Separately) Posted: Thu Jul 20, 2017 11:41 Post subject: |
|
|
Скрипт с использованием утилиты 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 |
|
Back to top |
|
|
addhaloka
Joined: 09 Nov 2010 Posts: 169
|
(Separately) Posted: Tue Jul 25, 2017 03:30 Post subject: |
|
|
Вот ещё варианты с 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 не работают, если в пути присутствует юникод. Папка создаётся, но входа в неё не происходит, вместо этого переход на уровень выше папки с юникодным именем. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
|
Back to top |
|
|
addhaloka
Joined: 09 Nov 2010 Posts: 169
|
(Separately) Posted: Tue Jul 25, 2017 10:49 Post subject: |
|
|
Flasher wrote: | Это очередной косячок nircmd с Юникодом. |
Не знал, что nircmd не дружит с юникодом. Жаль... |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2624
|
(Separately) Posted: Tue Jul 25, 2017 11:17 Post subject: |
|
|
TC умеет создавать папки и в ZIP-архивах… |
|
Back to top |
|
|
ZZZAlexZZZ
Joined: 08 Mar 2014 Posts: 68
|
(Separately) Posted: Wed Oct 04, 2017 12:49 Post subject: |
|
|
Flasher
В данном скрипте
ссылка
при вызове из папки с длиной пути > 247 символов вылетает ошибка:
---------------------------
Windows Script Host
---------------------------
Сценарий: D:\TC\WSH\create_folder_date_LongPath.vbs
Строка: 10
Символ: 32
Ошибка: Файл не найден
Код: 800A0035
Источник: Ошибка выполнения Microsoft VBScript
---------------------------
ОК
---------------------------
Как исправить ошибку для длинных путей?
Для коротких путей работает без проблем. |
|
Back to top |
|
|
Zmy
Joined: 06 Apr 2015 Posts: 78
|
(Separately) Posted: Thu Oct 05, 2017 12:01 Post subject: |
|
|
У меня этот скрипт работает с более 400 символов. |
|
Back to top |
|
|
ZZZAlexZZZ
Joined: 08 Mar 2014 Posts: 68
|
(Separately) Posted: Thu Oct 05, 2017 12:10 Post subject: |
|
|
Перепроверил.
Скрипт отрабатывает на локальном жестком диске (остановился на 378 символов, работает).
На сетевой папке, подключенной как диск выдает ту же ошибку. Может быть это поможет? |
|
Back to top |
|
|
|