Jak edytować znaczniki czasu za pomocą Windows PowerShell

Poniższy samouczek pokazuje, jak można edytować znaczniki czasu plików - tworzenie, ostatni dostęp i ostatni zapis - za pomocą programu Windows PowerShell.

PowerShell jest częścią każdej nowoczesnej wersji systemu operacyjnego Microsoft Windows. Microsoft przeniósł się do PowerShell z wiersza polecenia w systemie Windows 10, ale nie usunął tego wiersza polecenia.

Użytkownicy i administratorzy Windows 10 mają dostęp do obu, ale programowanie skupia się wyraźnie na PowerShell.

Z każdym plikiem w systemie Windows, a także w innych systemach operacyjnych, wiąże się kilka znaczników czasu. System plików śledzi czas utworzenia plików, czas ostatniego dostępu i czas ostatniego zapisu.

Jak edytować znaczniki czasu za pomocą Windows PowerShell

Pierwszą rzeczą, którą musisz zrobić, to uruchomić okno PowerShell. Naciśnij klawisz Windows, wpisz PowerShell, a następnie naciśnij klawisz Enter. Zauważ, że to uruchamia monit pod bieżącym kontem użytkownika. Jeśli potrzebujesz podwyższonego monitu, na przykład w celu edycji znaczników czasowych plików folderów, do których użytkownik ma ograniczony dostęp, przytrzymaj dodatkowo klawisze Shift i Ctrl.

Trzy wymagane polecenia to:

  • $ (Get-Item FILENAME.EXT) .creationtime = $ (DATE)
  • $ (Get-Item FILENAME.EXT) .lastaccesstime = $ (DATE)
  • $ (Get-Item FILENAME.EXT) .lastwritetime = $ (DATE)

Trzy polecenia zmieniają znaczniki czasu tworzenia, ostatniego dostępu i ostatniego zapisu pliku podczas ich uruchamiania.

Uwaga : Czas ostatniego dostępu nie jest domyślnie włączony we wszystkich obsługiwanych wersjach systemu Windows ze względu na problemy z wydajnością.

Aby podać kilka przykładów:

  • $ (Get-Item test.txt) .creationtime = $ (Get-Date)
  • $ (Get-Item test.txt) .lastaccesstime = $ (Get-Date „24.12.2011 07:15”)

Pierwsze polecenie ustawia znacznik czasu utworzenia pliku text.txt na bieżącą datę i godzinę. Drugie polecenie zmienia czas i datę ostatniego dostępu na 24 grudnia 2011 o 7:15.

Zauważ, że polecenie wymaga, aby plik znajdował się w bieżącym katalogu monitu programu PowerShell.

Pomocne polecenia

Jedną rzeczą, która może być przydatna, jest wyświetlenie znaczników czasu pliku bieżącego folderu przed i po uruchomieniu polecenia PowerShell. Ułatwia to znajdowanie plików, które nadal wymagają zmiany, i sprawdzenie, czy zmiany zostały zastosowane poprawnie.

Get-ChildItem -force | Tryb Select-Object, Nazwa, CreationTime, LastAccessTime, LastWriteTime | ft

Polecenie wyświetla listę wszystkich plików i folderów bieżącej ścieżki oraz wyświetla czas utworzenia, czas ostatniego dostępu i czas ostatniego zapisu każdego elementu w tabeli.

  • -force w tym kontekście dołącza ukryte i systemowe pliki wyjściowe.
  • ft jest skrótem od tabeli formatów.

Jeśli potrzebujesz tylko znacznika czasu utworzenia, uruchom zamiast tego polecenie Get-ChildItem -force .

Poniższy skrypt uruchamia operację na wszystkich plikach.

$ modyfikuj pliki = Get-ChildItem -force | Where-Object {! $ _. PSIsContainer}

foreach ($ obiekt w $ modyfikuj pliki)

{

$ object.CreationTime = („11.11.2011 12:00:00”)

$ object.LastAccessTime = („11.11.2011 12:00:00”)

$ object.LastWritetime = („11/11/2011 12:00:00”)

}

Po prostu skopiuj i wklej go, a następnie zmień zgodnie z własnymi wymaganiami.

Wskazówka: jeśli wolisz graficzny interfejs użytkownika, jeśli chodzi o zmianę znaczników czasu, sprawdź zamiast tego darmowy program Zmieniacz atrybutów.