Timestamps in Variablen erzeugen (auf Halde)
Hallo zusammen,
dieser Beitrag bezieht auf den Thread Mehrfach-timestamps erzeugen
Mit der Batch ist es möglich, mehrere timestamps zu erzeugen, nämlich genau in der Anzahl der aufgerufenen call-Anweisungen.
Klasse wäre es nun, eine definierte Anzahl an timestamps (quasi auf Halde) zu erzeugen, beispielsweise 99. Das würde allerdings den Rahmen der call-Anweisungen sprengen.
Wie lässt sich eine einstellbare (N=) Variablen-Erzeugung umsetzen?
dieser Beitrag bezieht auf den Thread Mehrfach-timestamps erzeugen
Mit der Batch ist es möglich, mehrere timestamps zu erzeugen, nämlich genau in der Anzahl der aufgerufenen call-Anweisungen.
Klasse wäre es nun, eine definierte Anzahl an timestamps (quasi auf Halde) zu erzeugen, beispielsweise 99. Das würde allerdings den Rahmen der call-Anweisungen sprengen.
Wie lässt sich eine einstellbare (N=) Variablen-Erzeugung umsetzen?
@echo off & setlocal ENABLEDELAYEDEXPANSION
call :mktime ts1
timeout /t 1 >nul
call :mktime ts2
timeout /t 1 >nul
call :mktime ts3
goto :print
REM Makro
:mktime
for /f %%a in ('wmic path win32_Localtime get Year^,Month^,Day^,Hour^,Minute^,Second /value ^| findstr .') do set /a %%a
for %%a in (month day hour minute second) do set "tmp=0!%%a!" &set "%%a=!tmp:~-2!"
set "timestamp=%Year%-%Month%-%day%_%Hour%-%Minute%-%Second%"
set "%~1=%timestamp%"
exit /b
:print
echo %ts1%
echo %ts2%
echo %ts3%
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 634846
Url: https://administrator.de/forum/timestamps-in-variablen-erzeugen-auf-halde-634846.html
Ausgedruckt am: 22.12.2024 um 18:12 Uhr
12 Kommentare
Neuester Kommentar
Moin,
ich habe mir eben den Thread davor einmal angeschaut, verstehe aber Dein Problem nicht.
Entweder
A) Man verwendet für jeden Datensazu das "Jetzt" in Form eines "now"
oder
B) Man kopiert das "Jetzt" beim Start in eine Variable und verwendet diese immer wieder
Zusatz zu B
Wenn man dadurch doppelte EInträge erhält, fügt man noch einen Zähler hinzu.
Ich habe das z.B. bei einem Makro was aus Rechnungs-Emails die Anhänge zieht und speichert.
20201223_101325_4_Rechnung XYZ von ABC.pdf
20201223_101325_5_Rechnung XYZ von ABC.pdf
Stefan
ich habe mir eben den Thread davor einmal angeschaut, verstehe aber Dein Problem nicht.
Entweder
A) Man verwendet für jeden Datensazu das "Jetzt" in Form eines "now"
oder
B) Man kopiert das "Jetzt" beim Start in eine Variable und verwendet diese immer wieder
Zusatz zu B
Wenn man dadurch doppelte EInträge erhält, fügt man noch einen Zähler hinzu.
Ich habe das z.B. bei einem Makro was aus Rechnungs-Emails die Anhänge zieht und speichert.
20201223_101325_4_Rechnung XYZ von ABC.pdf
20201223_101325_5_Rechnung XYZ von ABC.pdf
Stefan
Zitat von @OKIDOKI:
"Oder nur die ID" ist ja gerade das Problem, dass ich im weiteren Verlauf mehrere benötige ...
Klingt nach einem Design-Fehler."Oder nur die ID" ist ja gerade das Problem, dass ich im weiteren Verlauf mehrere benötige ...
Jede Datei sollte auf einem Datensatz in der DB beruhen und damit die eindeutige ID des Datensatzes erhalten.
Wenn zu einem Datensatz mehrere Dateien gehören hilft nur ID + Zähler
Moin,
Warum machst Du nocht einfach einen timestamp am Anfang und sorgst anschließend durch ein fortlaufendes Addendum (z.B. _x001, x002, x003, etc) für eindeutige Namen? Dann weißt Du welche Dateien aus dem gleichen Bathclauf stammen (durch den Timestamp) und durch das Addendum weißt Du, welche der Dateien aus dem Skript erzeugt wurden.
Irgendwie denkst Du zu kompliziert.
lks
PS: hast Du eine feste Anzahl von Dateien die erzeugt werden oder wird die dynamisch bestimmt?
Warum machst Du nocht einfach einen timestamp am Anfang und sorgst anschließend durch ein fortlaufendes Addendum (z.B. _x001, x002, x003, etc) für eindeutige Namen? Dann weißt Du welche Dateien aus dem gleichen Bathclauf stammen (durch den Timestamp) und durch das Addendum weißt Du, welche der Dateien aus dem Skript erzeugt wurden.
Irgendwie denkst Du zu kompliziert.
lks
PS: hast Du eine feste Anzahl von Dateien die erzeugt werden oder wird die dynamisch bestimmt?
Ich bin in Batch komplett der Noob und würde deshalb gleich auf PS oder so umsteigen, aber die Geschmäcker und Anforderungen sind ja unterschiedlich.
Du willst zur Laufzeit für jede Datei einen Timestamp erzeugen. Richtig?
Na dann hilft dir eventuell das als kleiner Leitfaden. Da wird was ähnliches behandelt:
https://stackoverrun.com/de/q/2932129
Grüße!
Du willst zur Laufzeit für jede Datei einen Timestamp erzeugen. Richtig?
Na dann hilft dir eventuell das als kleiner Leitfaden. Da wird was ähnliches behandelt:
https://stackoverrun.com/de/q/2932129
Grüße!