online 1
gast (50)

/ Forum / PC-Sonstiges

PC-SonstigesPC-Sonstiges

Fragevon björn vom 29.05.2019, 17:36 Options

datumsstempel von datei verändern

hallo!

wie kann ich den datumsstempel von dateien per batch oder script verändern? gibt es da ein commandlinetool für windows?

danke,
björn


Antwort schreiben

Antwort 1 von björn vom 01.06.2019, 11:22 Options

nach oben^^

Antwort 2 von LoLo vom 01.06.2019, 12:33 Options

Hi, ob es was für DOS gibt, weiss ich nicht. Aber es gibt Programme dafür unter Windows.

Antwort 3 von björn vom 01.06.2019, 12:44 Options

es soll ja kein dos sein, sondern für windows. welche programme kennst du denn?

Antwort 4 von hendrikw vom 01.06.2019, 13:07 Options

Unter Unix/Linux gibts dafür ein Tool namens touch. Das ist in diversen Portierungen von Unix-Kommandozeilen-Tools für Windows enthalten.
Such mal nach "GNU utilities for Win32".

mfg
Hendrik

Antwort 5 von LoLo vom 01.06.2019, 13:18 Options

@björn
commandlinetool = dos

Für Windows gibt es z.B. FileDate 1.5
http://www.geocities.com/soho/gallery/5643

Antwort 6 von EstronDekal vom 01.06.2019, 13:55 Options

Zitat:
commandlinetool = dos

Unsinn.

Kommandozeile 16-bit = Meistens (!) auch pures DOS

Kommandozeile kann aber trotzdem auch 32-bit sein, wobei diese Programme dann nicht ohne weiteres auf einem DOS-System laufen.

--------------------------------------------------------------------------------
Zur Thread-Frage:

http://www.freedos.org/cgi-bin/freedos-lsm.cgi?q=f&a=util/touch...

Oder direkter Download:

http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/util/file/t...

(Man kann das x auch durch ein s ersetzen, aber ich weiss nicht, worin sich die beiden Versionen unterscheiden)

Mit dem hier habe ich zwar noch nicht gearbeitet, aber das FreeDOS-Zeugs ist im Allgemeinen gut zu gebrauchen.


MfG...

Antwort 7 von björn vom 01.06.2019, 15:14 Options

Zitat:
commandlinetool = dos

das sind zwei ganz verschiedene dinge. der commandlineinterpreter (konsole) ist eine benutzerschnittstelle und dos ist ein betriebssystem.
die beiden haben natürlich auch miteinander zu tun. so ist die konsole die standardbenutzerschnittstelle unter dos und wenn man dosprogramme unter windows benutzen möchte, benötigt man dafür auch die konsole.
die konsole unter windows ist aber nicht ausschliesslich für dosprogramme da. und es gibt auch konsolen unter anderen betriebssystemen, wie zb. linux.

@EstronDekal
"s" sind wohl die sources (quelltexte). leider ist der befehl nicht für windows, sondern für dos. er kann nicht mit langen dateinamen (oder ich hab was falsch gemacht).

@hendrikw
vielen dank! funktioniert recht gut. nur das erstellungsdatum krieg ich damit nicht geändert. für mein momentanes prob brauch ich das aber auch nicht. trotzdem, für die zukunft, wär ich an einer lösung interessiert.

danke,
björn

Antwort 8 von EstronDekal vom 02.06.2019, 00:06 Options

Hallo,

Zitat:
leider ist der befehl nicht für windows, sondern für dos. er kann nicht mit langen dateinamen (oder ich hab was falsch gemacht).

Stimmt - wusste ich vorher auch nicht. Das liegt wohl an der Vorgehensweise, bei der ins Dateisystem geschrieben werden muss (Lange Namen + Dateisystem schreiben = Ein Graus).

Ist aber nicht so tragisch:

------SETDATE.BAT-------------------------
@echo off
:: Kommentare haben einen doppelten Doppelpunkt.
:: E. D.

:: Parameter überprüfen
IF "%1Param"=="Param" GOTO END

:: Eventuell vorhandene Tempdatei löschen
IF EXIST %TEMP%\TMPDATEF.ILE del %TEMP%\TMPDATEF.ILE
:: 'Ziel' in Variable setzen
SET TARGET=%1
:: Ziel in Tempdatei kopieren
copy "%TARGET%" %TEMP%\TMPDATEF.ILE

:: Parameter durchschalten und dann touch benutzen,
:: wohlgemerkt auf die kurznamige Tempdatei.
SHIFT
SHIFT
touch %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %TEMP%\TMPDATEF.ILE

:: Eventuell vorhandene Backup-Datei löschen
IF EXIST %TEMP%\BAKFILE.SFP del %TEMP%\BAKFILE.SFP
:: Ursprüngliche Datei sichern
move "%TARGET%" %TEMP%\BAKFILE.SFP
:: Tempdatei an den Bestimmungsort verschieben
move %TEMP%\TMPDATEF.ILE "%TARGET%"
:END

-----------End-Of-File-----------------------------------

Einfach alles zwischen den Linien kopieren und in einer Textdatei als SETDATE.BAT abspeichern. Wenn gewünscht, ergänze den Pfad zu touch-Datei, in der Zeile, in der am Anfang touch steht. Übrigens darf %TEMP% keine langen Namen im Pfad haben, wobei dass aber standardmäßig ja C:\Windows\TEMP ist (= keine langen Dateinamen). Wenn die Datei oben funktioniert, kopiert's die Zieldatei erst in einen kurzen Dateinamen, sichert die ursprüngliche Zieldatei, (BAKFILE.SFP) und kopiert dann die mit touch behandelte Datei zurück über die Zieldatei. Sind aber keine Sicherheitsmaßnahmen dabei, das führt also alles zu recht seltsamen Ergebnissen, wenn falsche Parameter angeben werden. Der Aufruf dieser Batch-Datei erfolgt so:

setdate Laufwerk:\Pfad\Datei-name.erweiterung <Alle Parameter für touch hier einsetzen!>


Allerdings darf der Pfad keine Leerzeichen enthalten. Dass würde jetzt etwas länger dauern. Alternativ kann man auch die Dateien selber so verschieben und umbennen, dass sie kurze Namen und Pfade haben, um dann touch zu benutzen, aber mit ner Batch geht's schneller.

----------------------------------------------------------------
Erstellungsdatum ist das Datum, an dem die Datei erstellt (oder auch kopiert) wurde. Geändert kriegt man dass, indem man die Datei neu irgendwo hin kopiert. Es wird dann das aktuelle Datum genommen.

Falls du's brauchst, kann ich noch in die Batchdatei oben einfügen, dass erst das Datum (und/oder Zeit) geändert wird, bevor die Zieldatei kopiert wird (Erstellungsdatum der neuen Datei). Danach ändert man dann Zeit und Datum wieder auf die aktuellen Werte. Kompliziert, aber funktionell.

MfG...

P.S.: Wozu brauchst du den Datumskram den? Dann könnte man vielleicht angepasstere Lösungen bieten. (Die Batchdatei oben wäre angepasst sicherer und einfacher zu bedienen.)

P.P.S.: BATCH-Datei bitte vorher mit einer nicht gebrauchten Datei TESTEN! Ich kann für nichts garantieren.

Antwort 9 von björn vom 03.06.2019, 10:24 Options

hallo EstronDekal!

danke für deine mühe, aber gegen den linuxport ist der dosbefehl halt leider nur zweiter sieger. ;-)

dass dosprogramme nicht mit langen dateinamen können, ist eigentlich der normalfall. dos lief auf fat16, da gab es nur die 8.3-namenskonvention.
anscheinend besteht diese beschränkung aber nicht, wenn man unter freedos gebootet hat .
den DOSLFN-Treiber könnte man aber auch unter msdos 7 nachinstallieren, wodurch dein workaround unnötig würde.

die idee, dass man sogar mit msdos7-befehlen, unter windows, dateien mit langen dateinamen erzeugen kann, ist super! die hätte mir mal zu meinen qbasic-zeiten kommen sollen.

das erstellungsdatum sollte schon frei editierbar sein. ich möchte nicht an der systemzeit rumfummeln.

Antwort 10 von steffen2 vom 03.06.2019, 10:35 Options

für Batch kenne ich nichts, aber es gibt DateEdit für das Kontextmenü. Dort kann man alle Zeiten ändern.

Gruß Steffen

Ähnliche Themen

Powerpoint-Datei Kennwortschutz aufheben
Poet  14.08.2007 - 41 Hits - 1 Antwort

text datein mit batsch verändern
Harvey17  26.02.2008 - 28 Hits - 2 Antworten

PDF-Datei Erstelldatum unverkennbar machen?
gent61  27.03.2008 - 20 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026