Trouver la date de modification du fichier/dossier
Je suis très nouveau à PowerShell, et j'espérais que je pourrais obtenir de l'aide en créant un script qui me dit que la date de modification d'un fichier.
Je souhaite que j'en savais plus sur PowerShell, comme je me sens comme je suis beaucoup demander (tout mon temps libre cette semaine sera dédiée à l'apprentissage de PowerShell mieux). De me pointer dans la direction de l'endroit où apprendre comment faire ce serait très utile aussi bien.
Voici la décélération. J'ai besoin d'exécuter un rapport quotidien qui vérifie la liste des ordinateurs à 90 magasins différents pour s'assurer une certaine sauvegarde a été effectuée. La date de modification doit dire si la sauvegarde a été effectuée, et le seront à la date précédente.
Si la date de modification est d'hier, il n'a pas besoin d'être une sortie. Si elle n'est pas d'hier, je voudrais avoir le résultat dans la fenêtre PowerShell, ou dans un fichier texte, selon ce qui serait plus facile.
J'ai aussi vérifier qu'un dossier est âgé de plus de sept jours pour chacun des 90 magasins, avec les mêmes critères pour la sortie. L'idée que j'ai serait comme ça pour chaque magasin
Pour Le Magasin 1:
Check file date for \\server\store\computer\c:\folder\"newest modified date in folder"
if date equals yesterday
then do nothing
if date does not equal yesterday
then output "Test did not backup"
check folder modified date for \\server\sample\store\backupfolder
if date equals <7 days old
then do nothign
if date equals >7 days old
then output "test did not backup"
Désolé de ne pas prouver mon effort de recherche, je suis très nouveau à Powershell et j'ai été sur un délai pour ce faire. J'ai, depuis hier, appris à faire tout ce que je devais faire avec ce script. Grâce à @Keith pour moi la mise sur le chemin d'accès correct. J'ai fini par utiliser le code suivant pour accomplir mon objectif de seulement mettre de l'endroit où le résultat était faux.
$a = Get-ChildItem \\server\XXX\Received_Orders\*.* | Where{$_.LastWriteTime -ge (Get-Date).AddDays(-7)}
if ($a = (Get-ChildItem \\server\XXX\Received_Orders\*.* | Where{$_.LastWriteTime -ge (Get-Date).AddDays(-7)}))
{
}
Else
{
'STORE XXX HAS NOT RECEIVED ANY ORDERS IN THE PAST 7 DAYS'
}
$b = Get-ChildItem \\COMP NAME\Folder\*.* | Where{$_.LastWriteTime -ge (Get-Date).AddDays(-1)}
if ($b = (Get-ChildItem \\COMP NAME\TFolder\*.* | Where{$_.LastWriteTime -ge (Get-Date).AddDays(-1)}))
{
}
Else
{
'STORE XXX DID NOT RUN ITS BACKUP LAST NIGHT'
}
- Peut les OP re-facteur de cette question? Peut-être à quelque chose de plus condensée et facile à lire?
Vous devez vous connecter pour publier un commentaire.
Si vous exécutez le Get-Item ou Get-ChildItem ces commandes seront de sortie Système.IO.FileInfo et Système.IO.DirectoryInfo objets qui contiennent cette information par exemple:
Ou vous pouvez accéder à la propriété directement comme ceci:
Pour commencer à filtrer les dossiers & des fichiers sur la base de la dernière écriture vous pouvez faire ceci:
Get-ChildItem c:\folder\*.* Where{$._LastWrittenTime -lt (Get-Date).AddDays(-8)}
etGet-ChildItem c:\folder\*.* Where{$._LastWrittenTime -gt (Get-Date).AddDays(-1)}
je suis maintenant observer comment la sortie à l'information afin que nous puissions voir ce que les magasins de la 90 échec de ce test pour l'une ou des deux commandes.Test-Path
.stat
, etGet-Item
est exactement ce dont j'ai besoin. Notez qu'il peut être raccourcie à lagi
de sorte que vous avez à taper moins.Pour obtenir la date de modification d'un fichier unique à essayer:
Pour comparer avec un autre:
Voici ce qui a fonctionné pour moi: