Question
Date et heure
- Toper
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 145
- Remerciements reçus 0
il y a 4 ans 5 mois #29422
par Toper
Powershell: la vie est belle
Date et heure a été créé par Toper
Bonjour à tous,
j'essaie de trouver des fichiers datant d'hier, mais seulement de 18h à 23h59.
Je pars sur un
[code:1]$dossier = \"C:\dossier\"
$2days = (Get-Date).AddDays(-1)
$today = (get-date).Date
(Get-ChildItem $dossier -Filter \"*.LST\" | Where-Object {$_.LastWriteTime -gt $2days -and $_.LastWriteTime -lt $today -and $_.LastWriteTime -gt \"18:00\" -and $_.LastWriteTime -lt \"23:59\" } | Select-String -Pattern 'ORA-'
[/code:1]
Mais ça n'est pas très probant...<br><br>Message édité par: gregmurf, à: 13/11/19 14:40
j'essaie de trouver des fichiers datant d'hier, mais seulement de 18h à 23h59.
Je pars sur un
[code:1]$dossier = \"C:\dossier\"
$2days = (Get-Date).AddDays(-1)
$today = (get-date).Date
(Get-ChildItem $dossier -Filter \"*.LST\" | Where-Object {$_.LastWriteTime -gt $2days -and $_.LastWriteTime -lt $today -and $_.LastWriteTime -gt \"18:00\" -and $_.LastWriteTime -lt \"23:59\" } | Select-String -Pattern 'ORA-'
[/code:1]
Mais ça n'est pas très probant...<br><br>Message édité par: gregmurf, à: 13/11/19 14:40
Powershell: la vie est belle
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 4 ans 5 mois #29429
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Date et heure
Dans ces cas là il faut créer des cas des tests.
[code:1]
$d=get-date;$d;trace-command TypeConversion -Expression { $d -gt \"18:00\"} -PSHost
# mercredi 13 novembre 2019 20:15:49
# DÉBOGUER : TypeConversion Information: 0 : Parse #result: 13/11/2019 18:00:00
# True
[/code:1]
Je n'ai pas trop le temps de creuser
Je pense qu'il faut un premier filtre sur la partie date seulement, puis sur la partie heure-minute.
Dans ton cas la partie Date n'est utilisé que sur une seule variable.
Voir ajouter des parenthèses dans ton test.
[code:1]
$d=get-date;$d;trace-command TypeConversion -Expression { $d -gt \"18:00\"} -PSHost
# mercredi 13 novembre 2019 20:15:49
# DÉBOGUER : TypeConversion Information: 0 : Parse #result: 13/11/2019 18:00:00
# True
[/code:1]
Je n'ai pas trop le temps de creuser
Je pense qu'il faut un premier filtre sur la partie date seulement, puis sur la partie heure-minute.
Dans ton cas la partie Date n'est utilisé que sur une seule variable.
Voir ajouter des parenthèses dans ton test.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Toper
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 145
- Remerciements reçus 0
il y a 4 ans 5 mois #29435
par Toper
Powershell: la vie est belle
Réponse de Toper sur le sujet Re:Date et heure
Merci.
Je pensais faire un premier tri à la date d'hier, PUIS un second sur l'heure comme tu le dis... mais je n'arrive pas à écrire le second tri...
[code:1]$today = (Get-date).Date
$yesterday = (get-date).date.adddays(-1)
$dossier = \"C:\dossier\"
$files = Get-ChildItem $dossier -Filter \"*.LST\" | Where-Object {$_.LastWriteTime -gt $yesterday -and $_.LastWriteTime -lt $today}
foreach-object .............[/code:1]
Fausse route ?
Je pensais faire un premier tri à la date d'hier, PUIS un second sur l'heure comme tu le dis... mais je n'arrive pas à écrire le second tri...
[code:1]$today = (Get-date).Date
$yesterday = (get-date).date.adddays(-1)
$dossier = \"C:\dossier\"
$files = Get-ChildItem $dossier -Filter \"*.LST\" | Where-Object {$_.LastWriteTime -gt $yesterday -and $_.LastWriteTime -lt $today}
foreach-object .............[/code:1]
Fausse route ?
Powershell: la vie est belle
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 4 ans 5 mois #29436
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Date et heure
Essaie ceci :
[code:1]
#trouver des fichiers datant d'hier, mais seulement de 18h à 23h59.
$Aujourdhui = (get-date).Date
$Hier = $Aujourdhui.AddDays(-1)
$StartTime=$Hier.Date.AddHours(18)
$EndTime=$Hier.Date.AddHours(23).AddMinutes(59)
$heure=17
$Minute=50
$DebugPreference=\"continue\"
$dossier=\"C:\TEMP\Test\"
1..10|
foreach-Object {
$Name=\"$Dossier\File$_.txt\"
&fsutil.exe file createnew $Name 10
$File=Get-ChildItem $Name
Write-debug \"Create $File\"
if ($_ -band 1)
{
$newDate=$Hier.Date.AddHours($Heure).AddMinutes($minute*$_)
$File.lastwritetime = $newDate
Write-debug \"Change $File `r`n`tNew date: $newdate\"
}
}
Get-ChildItem $dossier -Filter \"*.Txt\" |
Where-Object {
$CurrentDate=$_.LastWriteTime
($CurrentDate -ge $StartTime) -and ($CurrentDate -le $EndTime)
}
$DebugPreference=\"Silentlycontinue\"
[/code:1]
Si j'ai le temps je testerais avec ce module .
Le calcul de date est tjr laborieux, si on a pas pris de note sur le sujet...
[code:1]
#trouver des fichiers datant d'hier, mais seulement de 18h à 23h59.
$Aujourdhui = (get-date).Date
$Hier = $Aujourdhui.AddDays(-1)
$StartTime=$Hier.Date.AddHours(18)
$EndTime=$Hier.Date.AddHours(23).AddMinutes(59)
$heure=17
$Minute=50
$DebugPreference=\"continue\"
$dossier=\"C:\TEMP\Test\"
1..10|
foreach-Object {
$Name=\"$Dossier\File$_.txt\"
&fsutil.exe file createnew $Name 10
$File=Get-ChildItem $Name
Write-debug \"Create $File\"
if ($_ -band 1)
{
$newDate=$Hier.Date.AddHours($Heure).AddMinutes($minute*$_)
$File.lastwritetime = $newDate
Write-debug \"Change $File `r`n`tNew date: $newdate\"
}
}
Get-ChildItem $dossier -Filter \"*.Txt\" |
Where-Object {
$CurrentDate=$_.LastWriteTime
($CurrentDate -ge $StartTime) -and ($CurrentDate -le $EndTime)
}
$DebugPreference=\"Silentlycontinue\"
[/code:1]
Si j'ai le temps je testerais avec ce module .
Le calcul de date est tjr laborieux, si on a pas pris de note sur le sujet...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.693 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Date et heure