Come modificare i timestamp con Windows PowerShell

L'esercitazione seguente mostra come modificare i timestamp dei file - creare, ultimo accesso e ultima scrittura - utilizzando Windows PowerShell.

PowerShell fa parte di qualsiasi versione moderna del sistema operativo Windows di Microsoft. Microsoft è passato a PowerShell dal prompt dei comandi su Windows 10, ma non ha rimosso il prompt dei comandi.

Gli utenti e gli amministratori di Windows 10 hanno accesso ad entrambi, ma l'attenzione allo sviluppo è chiaramente su PowerShell.

A ogni file su Windows e anche ad altri sistemi operativi sono associati diversi timestamp. Il file system tiene traccia dell'ora di creazione dei file, dell'ora dell'ultimo accesso e dell'ultima ora di scrittura.

Come modificare i timestamp con Windows PowerShell

La prima cosa che devi fare è avviare una finestra di PowerShell. Toccare il tasto Windows, digitare PowerShell e premere successivamente il tasto Invio. Si noti che questo avvia il prompt con l'account utente corrente. Se è necessario un prompt elevato, ad esempio per modificare i timestamp dei file delle cartelle a cui l'utente ha accesso limitato, tenere premuto il tasto Maiusc e il tasto Ctrl.

I tre comandi richiesti sono i seguenti:

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

I tre comandi cambiano la creazione, l'ultimo accesso e gli ultimi timestamp di scrittura del file quando vengono eseguiti.

Nota : Last Access Time non è abilitato per impostazione predefinita su tutte le versioni supportate di Windows a causa di problemi di prestazioni.

Per darti alcuni esempi:

  • $ (Get-Item test.txt) .creationtime = $ (Get-Date)
  • $ (Get-Item test.txt) .lastaccesstime = $ (Get-Date "24/12/2011 07:15")

Il primo comando imposta il timestamp di creazione del file text.txt sulla data e l'ora correnti. Il secondo comando modifica l'ora e la data dell'ultimo accesso al 24 dicembre 2011 alle 7:15.

Si noti che il comando richiede che il file si trovi nella directory corrente del prompt di PowerShell.

Comandi utili

Una volta che può essere utile elencare i timestamp dei file della cartella corrente prima e dopo aver eseguito il comando PowerShell. Ciò semplifica la ricerca di file che devono ancora essere modificati e verificare se le modifiche sono state applicate correttamente.

Get-ChildItem -force | Select-Object Mode, Name, CreationTime, LastAccessTime, LastWriteTime | ft

Il comando elenca tutti i file e le cartelle del percorso corrente e visualizza l'ora di creazione, l'ora dell'ultimo accesso e l'ora dell'ultima scrittura di ciascun elemento in una tabella.

  • -force in questo contesto include file nascosti e di sistema nell'output.
  • ft è l'abbreviazione di tabella di formato.

Se hai solo bisogno di creare il timestamp, esegui invece Get-ChildItem -force .

Il seguente script esegue l'operazione su tutti i file.

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

foreach ($ oggetto in $ editfile)

{

$ object.CreationTime = ("11/11/2011 12:00:00")

$ object.LastAccessTime = ("11/11/2011 12:00:00")

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

}

Basta copiarlo e incollarlo e modificarlo in base alle proprie esigenze.

Suggerimento: se si preferisce un'interfaccia utente grafica quando si tratta di modificare i timestamp, consultare invece il software gratuito Attribute Changer.