AutoHotKey: Как я могу получить 'Date Modified' моего текущего рабочего каталога в буфер обмена?

464
Myles

У меня есть скрипт, который записывает базовое имя папки и количество файлов из каталогов мультимедиа на нашем сервере в электронную таблицу. Однако мне также нужно добавить строку кода, которая извлекает «Дата изменения» текущего рабочего каталога и помещает его в буфер обмена. Есть раздел кода, который берет счетчик файлов рабочего каталога и помещает его в буфер обмена, и я хотел бы выполнить модифицированное извлечение даты после того, как эти данные войдут в электронную таблицу.

Текущий адрес рабочего каталога уже находится в буфере обмена до вычисления количества файлов, поэтому после вставки значения числа файлов в электронную таблицу я могу вернуться и снова сделать адрес каталога в буфере обмена (чтобы получить измененную дату) ,

Кто-нибудь знает, какой код мне нужно поставить, чтобы получить дату изменения адреса каталога, который у меня есть в буфере обмена, а затем сразу же скопировать эти данные даты изменения в буфер обмена?

F1::  Spreadsheet:  {  Send,  Sleep, 200 Send,  Sleep, 50 Send, c sleep, 50 Send,  Sleep, 200 Mouseclick, Left, 522,1009 Sleep, 200 Send,  Sleep, 50 Send, v sleep, 50 Send,  Sleep, 100 Send,  Sleep, 50 Send,  Sleep, 50 Send,  Sleep, 200 Mouseclick, Left, 590,1013 Sleep, 200 Send,  Sleep, 100 Send,  Sleep, 100 Send, D Sleep, 100 Send,  Sleep, 100 Send,  Sleep, 50 Send, c sleep, 50 Send,   ; Calculate the number of files in a folder and its subfolders: SetBatchLines, -1 ; Make the operation run at maximum speed. FileNum = 0 ; FileSelectFolder, WhichFolder ; Ask the user to pick a folder. WhichFolder := Clipboard ; assumes full path to folder is in clipboard Loop, Files, %WhichFolder%\*.*, R { if A_LoopFileAttrib contains H,R,S ; Skip any file that is either Hidden, Read-only, or System continue ; Skip this file and move on to the next one FileNum += 1 } Clipboard := FileNum ClipWait ; Wait for the clipboard to contain text.  Sleep, 200 Mouseclick, Left, 522,1009 Sleep, 200 Send,  Sleep, 50 Send, v sleep, 50 Send,  Sleep, 100 Send,  Sleep, 50 Send,  Sleep, 50 Send,  Sleep, 50 Send,  Sleep, 200 Mouseclick, Left, 590,1013 Sleep, 250 Send,  Sleep, 400 Send,  Sleep, 100 Send,  Sleep, 100 Send,  Sleep, 100 Send,  Sleep, 100 Send,  Sleep, 100 Send,  Sleep, 100 Send,  Goto, Spreadsheet   Esc::ExitApp 

Большое спасибо за любую помощь заранее!

0

1 ответ на вопрос

2
harrymc

Код AHK, который вам нужен:

folder = %clipboard% FileGetTime, modtime, %folder%, A FormatTime, mytime, %modtime%, yyyymmddhh24 clipboard = %mytime% 

Это скопирует его в формате YYYYMMDDHH24, который вам, возможно, понадобится поместить в предпочитаемый вами формат.

Привет Гарри, похоже, это сработало. Хотя образец, который вы получили, соответствует описанию «20180921005154». Нет ли у AHK возможности переформатировать дату до того, как она ее предоставит? Я пытаюсь получить «настройки формата» моего столбца электронной таблицы, чтобы перевести данные во что-то лучшее, но я получаю «######» для каждого параметра. Переформатирование вручную для каждой ячейки может нанести ущерб цели автоматизации, которую я здесь использую. Myles 5 лет назад 0
Какой формат даты и времени вы используете? harrymc 5 лет назад 1
Я был бы счастлив с любым на данный момент. Мои текущие отображали бы дату выше как 21.09.18 (без времени, просто дата). Но я открыт для того, чтобы он отображался в любом формате даты, так как я могу изменить оставшуюся часть электронной таблицы, чтобы она соответствовала всем, что я могу получить для меня в AHK / Excel. Myles 5 лет назад 0
AHK может делать (почти) все ... Возможно, вы захотите использовать его [команду FormatTime] (https://autohotkey.com/docs/commands/FormatTime.htm), чтобы пометить метку времени перед отправкой в ​​буфер обмена. harrymc 5 лет назад 1
Я просто смотрел на это. Попытка выяснить, как получить его в любом формате, следуя этим инструкциям Myles 5 лет назад 0
Повеселись. Спросите, есть ли у вас конкретная проблема. harrymc 5 лет назад 1
Я могу видеть пример кода в нижней части этой страницы справки, относящийся к преобразованию времени, но я не вижу ни одного правильного примера кода, который я могу попробовать переформатировать дату, к сожалению. Есть ли у вас какие-либо идеи, как я могу переформатировать 20180921005154 и чтобы он пропустил «005154» (время), которое, как я понимаю, является T1, но я действительно не понимаю этого. Не самый опытный здесь. Myles 5 лет назад 0
Я изменил скрипт, чтобы (надеюсь) сделать то, что вы хотите. harrymc 5 лет назад 1
я верю, что, возможно, разобрал это Myles 5 лет назад 0

Похожие вопросы