Question Recuperer un fichier à une date précise (Résolu)

Plus d'informations
il y a 15 ans 6 mois #2767 par Schneider
Bonjour,
Bon la prog, le scripting et moi ça fait 2; tout juste capable de mettre 2-3 commandes bout à bout. Bref c'est surement très simple mais je galère pour effectuer l'action suivante:
Récuperer un fichier de la date du jour dans un rep (1 fichier de log crée par jour) pour le \"piper\" en le copiant vers un serveur.
en gros un get-item rep\* \"fichier à la meme date que get-date\" | copy-item \\serveur\rep
en shedulant ça ensuite toute les nuits.
J'arrive à lister les fichiers du dit rep et les trier par date mais ca ne me permets pas (ou plutôt je ne sais pas comment) de choisir celui du jour qu'indique un get-date. Et c'est surement plus simple de récupérer directement le fichier crée de la date ou on lance la commande et de le passer ensuite en copie. Hésitez pas à bien détailler je ne me vexerai pas ;-) merci

Message édité par: Vmax666, à: 10/09/08 09:19<br><br>Message édité par: Vmax666, à: 10/09/08 09:22

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 6 mois #2768 par daniel soares
hello
ce serait plus simple si tu postais le debut de ton code, mais je pense avoir saisi le probleme que tu rencontres.

alors la cmdlet que j'utiliserai plutôt est le Get-ChildItem
gci pour les intimes, que je passe dans le pipe pour filtrer en fonction de la date de dernière modification

la subtilité est que get-date et en general toutes dates dans powershell sont sous la forme 'date heure' donc si tu fais une comparaison avec get-date tu compare a la date et l'heure actuelle, résultat: tu ne trouvera aucun fichier modifié après
tu peux utiliser entre autre (get-date).date qui est la date du jour a 0h.

ca donne, pour trouver tous les fichiers modifiés apres 0h aujourd'hui:
[code:1]
gci c:\temp | where{$_.lastwritetime -ge (get-date).date}
[/code:1]

je préfère utiliser la propriété lastwritetime a creationtime car un fichier remplacé ou renomé gardera sa date de création d'origine

voila j'espère avoir répondu a ta question.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 6 mois #2774 par Robin Lemesle
Hi Vmax (un amateur de 2roues supplémentaire :whistle: ).

Pour le fichier en question, la \&quot;date du jour\&quot; compose le nom du fichier ? La question est : souhaites-tu filtrer sur son nom ou sur sa date de création.

Robin MVP PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 6 mois #2775 par Schneider
Hello,
Merci beaucoup Dan; la commande marche impecc. Par contre 2 questions. Je me suis apercu que je ne devais pas faire de cette façon. En effet quand mon log se clotûre à disons 3h du mat instantanément un autre est crée avec la date du jour dans une partie du nom de fichier et la date du jour dans les attributs de date mais qui passera elle à demain quand le fichier sera cloturé lors de la dernière écriture la nuit prochaine (euh je suis pas sur d'être très clair en disant cela :blink:)

Bref je me retrouve avec 2 fichiers dans mon pipe. Je me suis dis le mieux est de récupérer le fichier de la nuit précédente lorsque je lance le script.
En voyant qu'une commande comme [DateTime]::Today.AddDays(-1) me donnait le jour précédent mais sous la forme différente de celle retournée par get-date j'ai essayé sans succès de mixer le adddays avec .date. Donc question est que c'est possible et comment peut-on ?
J'ai vu dans un post que l'on pouvait faire cela autrement mais en récupérant le nom de fichier en variable j'aimerais plus simple.
2eme question je croyais que le GCI servait à descendre dans l'arborescence par rapport à un GI ex get-item c:\temp\* qui n'interroge que le rep courant. Est qu'il possède des propriétés cachés qui font qu'il est préférable de l'utiliser.
Merci en tous cas pour ce forum pour les nu... euh les débutants.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 6 mois #2776 par Schneider
Bonjour Robin
Hé oui la plus belle des motos enfin pour moi pas de polémique :P La nouvelle ne sera malheureusement pas a portée de ma bourse.

Je ne suis pas bloqué sur la façon de faire le nom du fichier comprend effectivement la date sous la forme xxxxxannéemoisjour ex deghbh20080908-1.log mais je pensais que c^était plus simple de filtrer sur la date de création en l'occurence maintenant sur celle du jour précédent.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 6 mois #2777 par Robin Lemesle

En voyant qu'une commande comme [DateTime]::Today.AddDays(-1) me donnait le jour précédent mais sous la forme différente de celle retournée par get-date j'ai essayé sans succès de mixer le adddays avec .date. Donc question est que c'est possible et comment peut-on ?


On peut mettre les dates sous le format que l'on souhaite jj-mm-aa, mmjjaaaa, etc.
Le mieux est que tu nous donnes le format que tu souhaites.

2eme question je croyais que le GCI servait à descendre dans l'arborescence par rapport à un GI ex get-item c:temp* qui n'interroge que le rep courant. Est qu'il possède des propriétés cachés qui font qu'il est préférable de l'utiliser.


Gci, comme son nom l'indique, obtient les éléments à un ou plusieurs emplacements spécifiés. Si l'élément est un conteneur, elle obtient les éléments qui se trouvent à l'intérieur du conteneur, appelés éléments enfants. Il peut aussi être recursif en utilisant le paramètre \&quot;Recurse\&quot;, mais ce n'est pas automatique.
Un Get-Item Get-Item obtient l'élément à l'emplacement spécifié, il ne fait pas de liste. Dans ton cas, si tu es certain de ne jamais avoir de doublon, tu peux utiliser GI.

Robin MVP PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.085 secondes
Propulsé par Kunena