Question Manipuler des dates tout en les formattant(Résolu)

Plus d'informations
il y a 17 ans 3 mois #3380 par Gabriel
Bonsoir Bonsoir...

Alors je connais la commande get-date qui me fournit la date tout en la formattant comme je veux
[code:1]ex:
aujourd'hui 3 decembre 2008
get-date -uformat \"%y%m%d\"
081203
[/code:1]

Je viens de découvrir (get-date).AddDays(2) qui rajoute 2 jours à la date du jour...
[code:1]ex:
aujourd'hui 3 decembre 2008
(get-date).AddDays(2)
Friday, December 05, 2008 5:01:29 PM
[/code:1]

Là ou je bloque c'est quand je tente de fusionner les 2... c'est à dire récupérer une date avec n jours en plus ou en moins et de la formater comme je le souhaite...
Vous avez une idée? j'ai un peu essayer n'importe comment, j'avoue...

la finalité est de récupérer un fichier en date de n jour avant ou apres ... la date étant dans le nom du fichier...

Merci Merci :lol:
[Edit]
j'ai corrigé quelques fôtes...

Message édité par: tonic8, à: 3/12/08 17:08<br><br>Message édité par: Arnaud, à: 9/12/08 23:29

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

Plus d'informations
il y a 17 ans 3 mois #3381 par Laurent Dardenne
tonic8 écrit:

Là ou je bloque c'est quand je tente de fusionner les 2

Utilise le paramètre date
[code:1]
get-date -date ((get-date).AddDays(2)) -uformat \&quot;%y%m%d\&quot;
[/code:1]
Ou le formatage de PowerShell
[code:1]
\&quot;{0:ddmmyyy}\&quot; -F ,(get-date).AddDays(2)
[/code:1]
Pour plus de détails sur le formatage voir ce document

Tutoriels PowerShell

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

Plus d'informations
il y a 17 ans 3 mois #3382 par Gabriel
:woohoo: \&quot;Impressive!!\&quot;

alors ok le premier cas de figure j'aurais pu le chercher longtemps... meme si j'avais deja vu des choses comme ca (mais pas pour les dates... je suis pas developpeur moi :blush: )

Pour le 2eme cas de figure :huh: j'ai recuperer le fichier, et je vais etudier ca. Ca a l'air cool je peux directement generer le nom du fichier avec la date que je veux...
[code:1]ex:
\&quot;{0:'ex'yyMMdd'.log'}\&quot; -F ,(get-date).AddDays(2)
ex081205.log
[/code:1]

Par contre tu met une \&quot;,\&quot; (virgule) entre -F et le (get-date), ce qui n'ai pas le cas dans l'exemple qui vient d'o'reilly (mais bon j'ai peut etre lu un peut rapidement le truc d'o'Reilly)

Merchi
:lol:<br><br>Message édité par: tonic8, à: 3/12/08 18:29

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

Plus d'informations
il y a 17 ans 3 mois #3383 par Laurent Dardenne
tonic8 écrit:

je suis pas developpeur moi

Ici pas besoin c'est dans la doc :
[code:1]Help Get-Date -Full[/code:1]
:P
tonic8 écrit:

Par contre tu met une \&quot;,\&quot; (virgule) entre -F et le (get-date)

Oui c'est une erreur de copier/coller.
tonic8 écrit:

Ca a l'air cool je peux directement generer le nom du fichier avec la date que je veux...

Cette fonction de formatage est trés pratique, parfois préférable à l'expansion de chaîne.
[code:1]
$Extension=\&quot;Log\&quot;
$S=\&quot; Avant JC\&quot;
\&quot;Ex{0:yyMMdd'$S'}.{1}\&quot; -F (get-date).AddDays(2),$extension[/code:1]
Par contre dans certain cas il faut la placer entre parenthèses :
[code:1]
Write-Warning (\&quot;[{0}:{1}] {2}\&quot; -F ($LocalInvocation,$MyInvocation.InvocationName,,\&quot;Un objet est à `$Null.\&quot;«»))
#
write-Debug (\&quot;CallStack {0}\&quot; -F (ParseStack $Stack) )
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 17 ans 3 mois #3384 par Gabriel
Vu et testé MAIS il y a un mais...
si j'execute la ligne dans le shell ca marche
[code:1]
$fichier = \&quot;ex{0:yyMMdd}\&quot; -F (get-date).AddDays(-1)
$fichier
ex081202
[/code:1]

si je l'execute dans un script
[code:1]
######################################################################
## Variable de base:
## repertoire Spool de Splunk
## le nom des machines ou aller chercher le fichier
## le partage ou se trouve le fichier

$repertoire = \&quot;c:\temp\&quot;
#$repertoire = \&quot;C:\win32app\Splunk\var\spool\splunk\&quot;
$serveur01 = \&quot;serveur1\&quot;
$serveur02 = \&quot;serveur2\&quot;
$chemin = \&quot;logs$

######################################################################
## on détermine le nom du fichier a recuperer, c'est a dire
## celui de la veille il est créé par IIS, commençant
## par ex, puis l'année, puis le mois, puis le jour
## ici on se sert de l'option de formatage et on passe cette option
## a la commande get-date sur laquelle on applique un -1 pour avoir
## le fichier de la veille

$fichier = \&quot;ex{0:yyMMdd}\&quot; -F (get-date).AddDays(-1)

######################################################################
## on copie les fichiers si ils existent dans le repertoire
## spool de splunk en les renommant

copy-item -path $serveur01/$chemin/$fichier'.log' -destination $repertoire/$fichier'-'$serveur01'.log'
[/code:1]

ca me jette un bon message d'erreur comme suit
[code:1]
PS C:\win32app&gt; C:\win32app\smtp_relay.ps1
Unexpected token 'ex' in expression or statement.
At C:\win32app\smtp_relay.ps1:22 char:15
+ $fichier = \&quot;ex{ &lt;&lt;&lt;&lt; 0:yyMMdd}\&quot; -F (get-date).AddDays(-1)
[/code:1]

j'ai aussi essayé ca, c'est a dire mettre les 2 caractere \&quot;ex\&quot; dedans, mais ca marche pas il bloque
[code:1]
PS C:\win32app&gt; C:\win32app\smtp_relay.ps1
Unexpected token '{' in expression or statement.
At C:\win32app\smtp_relay.ps1:22 char:14
+ $fichier = \&quot;{0 &lt;&lt;&lt;&lt; :'ex'yyMMdd}\&quot; -F (get-date).AddDays(-1)
[/code:1]


Message édité par: tonic8, à: 3/12/08 19:50<br><br>Message édité par: tonic8, à: 3/12/08 19:53

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

Plus d'informations
il y a 17 ans 3 mois #3387 par Laurent Dardenne
Il en manque un bout, non ?
[code:1]
$chemin = \&quot;logs$
[/code:1]

Tutoriels PowerShell

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

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