AutoHotKey: Wie bekomme ich das 'Date Modified' meines aktuellen Arbeitsverzeichnisses in die Zwischenablage?

581
Myles

Ich habe ein Skript, das den grundlegenden Ordnernamen und die Anzahl der Dateien aus den Medienverzeichnissen auf unserem Server in eine Tabelle protokolliert. Ich muss jedoch auch eine Codezeile hinzufügen, die das Änderungsdatum des aktuellen Arbeitsverzeichnisses abruft und in die Zwischenablage kopiert. Es gibt einen Codeabschnitt, der die Dateizählung des Arbeitsverzeichnisses in die Zwischenablage kopiert, und ich möchte den Änderungszeitpunkt ausführen, nachdem die Daten in die Kalkulationstabelle eingegeben wurden.

Die aktuelle Arbeitsverzeichnisadresse befindet sich bereits vor der Berechnung der Dateizählung in der Zwischenablage. Nachdem der Dateizählwert in die Kalkulationstabelle eingefügt wurde, kann ich zurückgehen und die Verzeichnisadresse erneut in die Zwischenablage verschieben (um das geänderte Datum abzurufen). .

Weiß jemand, welchen Code ich setzen muss, um das Änderungsdatum der Verzeichnisadresse zu erhalten, die ich in der Zwischenablage habe, und dann diese Datumsänderungsdaten direkt in die Zwischenablage zu kopieren?

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 

Vielen Dank für jede Hilfe im Voraus!

0

1 Antwort auf die Frage

2
harrymc

Der AHK-Code, den Sie benötigen, lautet:

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

Dadurch wird es in das Format YYYYMMDDHH24 kopiert, das Sie möglicherweise benötigen, um es in Ihr bevorzugtes Format zu setzen.

Hallo Harry, das sieht aus, als hätte es funktioniert. Das durchgekommene Beispiel entspricht dem von Ihnen beschriebenen Beispiel '20180921005154'. Gibt es keine Möglichkeit für AHK, das Datum vor der Bereitstellung neu zu formatieren? Ich versuche, die 'Formateinstellungen' meiner Tabellenspalte abzurufen, um die Daten in etwas besseres zu übersetzen, aber ich bekomme für jede Einstellung '' ###### '. Die manuelle Neuformatierung für jede Zelle würde den Zweck der Automatisierung, die ich hier habe, zunichte machen. Myles vor 6 Jahren 0
Welches Datum / Uhrzeit-Format verwenden Sie? harrymc vor 6 Jahren 1
Ich würde an diesem Punkt mit irgendetwas glücklich sein. Meine aktuellen würden das Datum oben als 21.09.18 anzeigen (kein Zeitdatum nur Datum). Aber ich bin offen für die Anzeige als beliebiges Datumsformat, da ich den Rest der Tabelle so anpassen kann, dass er mit AHK / Excel übereinstimmt. Myles vor 6 Jahren 0
AHK kann (fast) alles ... Sie können den Zeitstempel mit dem [FormatTime-Befehl] (https://autohotkey.com/docs/commands/FormatTime.htm) massieren, bevor Sie ihn in die Zwischenablage senden. harrymc vor 6 Jahren 1
Ich habe das nur angeschaut. Versuchen Sie herauszufinden, wie Sie diese Anweisungen in ein beliebiges Format bringen können Myles vor 6 Jahren 0
Habe Spaß. Fragen Sie, ob Sie ein bestimmtes Problem haben. harrymc vor 6 Jahren 1
Der Beispielcode am unteren Rand dieser Hilfeseite bezieht sich auf das Konvertieren der Uhrzeit, aber ich sehe keine richtigen Beispielcodes. Ich kann das Datum leider neu formatieren. Haben Sie eine Idee, wie ich 20180921005154 umformatieren kann, und lassen Sie die '005154' (Zeit) weg, die ich als T1 verstehe, aber ich bekomme das wirklich nicht im Griff. Nicht der erfahrenste hier. Myles vor 6 Jahren 0
Ich habe das Skript geändert, um (hoffentlich) das zu tun, was Sie möchten. harrymc vor 6 Jahren 1
Ich glaube, ich habe es vielleicht sortiert Myles vor 6 Jahren 0