zmiana daty modyfikacji w batchu

0

Jak w pliku wsadowym zmienić datę modyfikacji pliku (odpowiednik polecenia touch)?
Sztuczka @echo off >> dupa
tworzy pusty plik dupa, jeśli takowy nie istniał, nie zmienia zawartości pliku, daty utworzenia i daty modyfikacji jeśli istniał.
Przy okazji, jeżeli w XP utworze nowy plik foo, a w tym katalogu istniał kiedyś plik foo, to datą utworzenia nowego pliku jest data utworzenia starego pliku. Można jakąś sztuczką takie zachowanie systemu zmienić?

0

a co cię powstrzymuje od użycia touch?

0

Dość prozaiczna przyczyna, brak polecenia touch w XP.

0

Witam

W systemach DOS / Windows nie da się skorzystać z gotowego programu - polecenia systemowego ( chyba, żeby w Sieci znaleźć gdzieś jakiś 'File Redater' ). Trzeba będzie
napisać program typu "*.EXE" ( np. w assemblerze ), który zmieni datę pliku korzystając
z funkcji 57H przerwania 21H ; literatura :

http://spike.scu.edu.au/~barry/interrupts.html

http://spike.scu.edu.au/~barry/interrupts.html#ah57

http://www.nvg.ntnu.no/bbc/doc/Master%20512%20Technical%20Guide/m512techb_int21.htm

                                                                            Pozdrawiam

                                                                                  JK
0

ja tam bym zaczal od http://msdn.microsoft.com/en-us/library/ms724290%28v=vs.85%29.aspx

mozesz mi wyjasnic w jaki sposob chcesz kozystac z int 21h w exe? Jedyna opcja to v86 mode, czyli pliko .com. I to tylko na wersjach 32 bitowych.

Nie rozumiem, po co uzywac api DOSa pod xp. Po co w ogóle pisac cos innego niz bootloader w real mode.

0

Witam ponownie

Cała ta sprawa z plikami COM ( pisanymi w asemblerze ) i ich funkcjonalnością w XP ( w kontekście zmiany daty ) była już dyskutowana na trochę podobnym forum :

http://forums.pcworld.com/index.php?/topic/89532-file-redater/

A może spróbować skorzystać z gotowego "redatera", którego dałoby się znaleźć w sieci :

ftp://files.chatnfiles.com/The-Pier-Shareware/The%20Pier%20Shareware%203/016/files.htm
Pozdrawiam

                                                                      JK
0
bo napisał(a)

Dość prozaiczna przyczyna, brak polecenia touch w XP.

Jest sporo touchy pod windowsa, wystarczy ściągnąć i mieć.

mozesz mi wyjasnic w jaki sposob chcesz kozystac z int 21h w exe? Jedyna opcja to v86 mode, czyli pliko .com
To nie jest kwestia com i exe, tylko programu dla DOS (który może być .com albo .exe) a programu win32 (który jest zawsze .exe).

0

hmmm po mojemu to wywołać jakiś skrypt np. coś Visual Basic Script chyba lepsze niż tworzyć w assemblerze (jak ktoś wyżej sugerował) program na 2 linie (może trochę przesadzam) tworzyć w języku niskiego poziomu (assembler).

0

Znalazłem prosty sposób (polecenia konsoli) zmiany daty utworzenia pliku na aktualną. Mam zatem pliki, w których data utworzenia jest o 5 lat późniejsza od daty ostatniej modyfikacji. Ciekawostka dla zwolenników tezy, że Windows jest dobrze przemyślanym systemem.

0

Ponieważ się nie zalogowałem, to muszę pisać post pod postem. Dziwactwa z datami ujawniają się w takiej sytuacji: W dwóch katalogach (powiedzmy source i target) są pliki o takiej samej nazwie. Przenosimy plik z katalogu source do katalogu target (można przenosić poleceniem move na konsoli, można przy pomocy Wytnij i Wklej). Otrzymany plik ma datę utworzenia z katalogu target, a datę ostatniej modyfikacji z katalogu source.

0

Jak już sam pisałeś Windows (przynajmniej XP) jest dziwny (żeby nie napisać głupi) i zawsze gdy tworzysz nowy plik w katalogu w którym kiedykolwiek wcześniej istniał plik o tej samej nazwie zawsze data utworzenia pliku będzie datą utworzenia pierwszego pliku o tej nazwie a więc w przypadku przenoszenia z nadpisaniem poprzedniego pliku będzie to sam numer z datą utworzenia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1