POWERSHELL - vérifier la date de modif d'un fichier
Fermé
PLAYZIR
-
1 avril 2022 à 14:57
brucine Messages postés 17731 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 18 novembre 2024 - 5 avril 2022 à 10:28
brucine Messages postés 17731 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 18 novembre 2024 - 5 avril 2022 à 10:28
A voir également:
- Powershell date fichier
- Fichier rar - Guide
- Fichier host - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier dat - Guide
2 réponses
brucine
Messages postés
17731
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
18 novembre 2024
2 580
Modifié le 2 avril 2022 à 15:20
Modifié le 2 avril 2022 à 15:20
Bonjour,
Je suis vieux, Powershell, ce n'est pas ma tasse de thé.
Une solution en batch si ça dépanne (avec le dossier G:\cadeaux et des fichiers test en E:\):
Je suis vieux, Powershell, ce n'est pas ma tasse de thé.
Une solution en batch si ça dépanne (avec le dossier G:\cadeaux et des fichiers test en E:\):
@echo off
CHCP 65001 >nul
FORFILES /P "G:\cadeaux" /d -00 /C "cmd /C if /I @isdir==true echo @fdate > E:\temp1.txt"
DATE /T > E:\temp2.txt
FOR /F "delims=" %%a IN ('type "E:\temp1.txt"') DO SET JOUROLD=%%a
FOR /F "delims=" %%g IN ('type "E:\temp2.txt"') DO SET JOURNEW=%%g
IF %JOUROLD%==%JOURNEW% ECHO Sauvegarde effectuée le %JOURNEW & GOTO :EOF
ECHO Sauvegarde effectuée le %JOUROLD%
DEL E:\temp1.txt
DEL E:\temp2.txt
pause >nul
:EOF
choubaka
Messages postés
39403
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
17 novembre 2024
2 102
Modifié le 5 avril 2022 à 08:27
Modifié le 5 avril 2022 à 08:27
bonjour
Je vois que tu déclares tes variable $ok et $ko en dehors de ta boucle ... idem pour $time, tu l'initialises 2 fois ...
LastWriteTime est utilisé pour $Time mais également pour la sortie du pipe. ($_LastWriteTime)
Et c'est quoi cette variable $item ? où est-elle initialisée ?
Je vois que tu déclares tes variable $ok et $ko en dehors de ta boucle ... idem pour $time, tu l'initialises 2 fois ...
LastWriteTime est utilisé pour $Time mais également pour la sortie du pipe. ($_LastWriteTime)
Et c'est quoi cette variable $item ? où est-elle initialisée ?
brucine
Messages postés
17731
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
18 novembre 2024
2 580
5 avril 2022 à 10:28
5 avril 2022 à 10:28
Bonjour,
Je suis tellement nul que je n'arrive pas à y faire fonctionner la condition if...else, donc "à mettre au régime" de manière plus propre.
Sous réserve que la source ait été modifiée (sans quoi on n'a pas de contrôle que la tâche de sauvegarde a bien été effectuée, mais dans le vide), on n'a pas besoin de faire une récursion à travers tous les fichiers: il suffit qu'un seul ait été modifié pour que la date de modification du dossier lui-même le soit:
Je suis tellement nul que je n'arrive pas à y faire fonctionner la condition if...else, donc "à mettre au régime" de manière plus propre.
Sous réserve que la source ait été modifiée (sans quoi on n'a pas de contrôle que la tâche de sauvegarde a bien été effectuée, mais dans le vide), on n'a pas besoin de faire une récursion à travers tous les fichiers: il suffit qu'un seul ait été modifié pour que la date de modification du dossier lui-même le soit:
if ($(gi c:\Users\bru\Desktop\bridge).LastWriteTime.ToString("dd-MM-yyyy") -lt (get-date).ToString("dd-MM-yyyy"))
{
Write-Host "dernière sauvegarde le" $(gi c:\Users\bru\Desktop\bridge).LastWriteTime.ToString("dd-MM-yyyy")
}
if ($(gi c:\Users\bru\Desktop\bridge).LastWriteTime.ToString("dd-MM-yyyy") -eq (get-date).ToString("dd-MM-yyyy"))
{
Write-Host "la sauvegarde date bien de ce jour"
}