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.