Question
[Résolu] Script avec retour code 1 ou 0
- karaaslan
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 13
- Remerciements reçus 0
il y a 6 ans 10 mois #28867
par karaaslan
[Résolu] Script avec retour code 1 ou 0 a été créé par karaaslan
Bonjour,
Je reviens vers vous pour améliore mon script de purge
J'ai besoin d'ajouter mon script dans centreon mais j'ai besoin d'un code retour 1 ou 0 a la fin de mon script.
mon script:
function New-FileNameTimeStamped{
param($FileName,$Date=(Get-Date),$Format='dd-MM-yyyy-HH-mm-ss')
$SF=New-object System.IO.FileInfo $FileName
\"{0}\{1}-{2:$Format}{3}\" -F $SF.Directory,$SF.BaseName,$Date,$SF.Extension
}#New-FileNameTimeStamped
#variable pour la log.
$LOG=New-FileNameTimeStamped -FileName 'c:\tmp\Log.txt' -Format 'ddMMyyyy'
$Folder = \"C:\tmp\SAUV_test\"
#purge 30 jours.
Get-ChildItem $Folder -Recurse -Force -ea 0 |
? {!$_.PsIsContainer -and $_.LastWriteTime -lt (Get-Date).AddDays(-1)} |
ForEach-Object {
$_ | del -Force
$_.FullName | Out-File $LOG -Append
Exemple de retour code :
#Si purge nok = erreur
if ($list -ne $null)
{
Write-Warning \"Purge NOK\"
echo \"NOK\"
exit 1
}else{
#Sinon Purge OK
Write-host \"Script Purge Ok\"
echo \"Test OK\"
exit 0
}
}
else
{
Write-Host 'error'
exit 1
}
Merci d'avance de votre aide =D
Message édité par: birel, à: 3/05/19 16:02<br><br>Message édité par: Arnaud, à: 13/05/19 10:18
Je reviens vers vous pour améliore mon script de purge
J'ai besoin d'ajouter mon script dans centreon mais j'ai besoin d'un code retour 1 ou 0 a la fin de mon script.
mon script:
function New-FileNameTimeStamped{
param($FileName,$Date=(Get-Date),$Format='dd-MM-yyyy-HH-mm-ss')
$SF=New-object System.IO.FileInfo $FileName
\"{0}\{1}-{2:$Format}{3}\" -F $SF.Directory,$SF.BaseName,$Date,$SF.Extension
}#New-FileNameTimeStamped
#variable pour la log.
$LOG=New-FileNameTimeStamped -FileName 'c:\tmp\Log.txt' -Format 'ddMMyyyy'
$Folder = \"C:\tmp\SAUV_test\"
#purge 30 jours.
Get-ChildItem $Folder -Recurse -Force -ea 0 |
? {!$_.PsIsContainer -and $_.LastWriteTime -lt (Get-Date).AddDays(-1)} |
ForEach-Object {
$_ | del -Force
$_.FullName | Out-File $LOG -Append
Exemple de retour code :
#Si purge nok = erreur
if ($list -ne $null)
{
Write-Warning \"Purge NOK\"
echo \"NOK\"
exit 1
}else{
#Sinon Purge OK
Write-host \"Script Purge Ok\"
echo \"Test OK\"
exit 0
}
}
else
{
Write-Host 'error'
exit 1
}
Merci d'avance de votre aide =D
Message édité par: birel, à: 3/05/19 16:02<br><br>Message édité par: Arnaud, à: 13/05/19 10:18
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 6 ans 10 mois #28869
par Philippe
Réponse de Philippe sur le sujet Re:Script avec retour code 1 ou 0
salut birel
essai en replacent les exit par des return
essai en replacent les exit par des return
Connexion ou Créer un compte pour participer à la conversation.
- karaaslan
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 13
- Remerciements reçus 0
il y a 6 ans 10 mois #28877
par karaaslan
Réponse de karaaslan sur le sujet Re:Script avec retour code 1 ou 0
Bonjour après plusieurs test, j'ai pas réussi lol xD
Mon script ne fonctionne plus, je voir pas l'erreur.
function New-FileNameTimeStamped {
param($FileName, $Date = (Get-Date), $Format = 'dd-MM-yyyy-HH-mm-ss')
$SF = New-object System.IO.FileInfo $FileName
\"{0}\{1}-{2:$Format}{3}\" -F $SF.Directory, $SF.BaseName, $Date, $SF.Extension
} # New-FileNameTimeStamped
# variable pour le fichier log avec la date grace a la fonction
$LOG = New-FileNameTimeStamped -FileName 'c:\temp\Log.txt' -Format 'ddMMyyyy'
$Folder = \"C:\Purge\"
# supprimer les fichiers plus anciens que 30 jours
try {
Get-ChildItem $Folder -Recurse -Force -ErrorAction stop |
where {-not $_.PsIsContainer -and $_.LastWriteTime -lt (Get-Date).AddDays(-1)} |
ForEach-Object {
$_ | Remove-Item -Force -ErrorAction stop
$_.FullName | Out-File $LOG -Append
exit 0
}
}
catch {
exit 1
}
Merci d'avance pour votre aide
Mon script ne fonctionne plus, je voir pas l'erreur.
function New-FileNameTimeStamped {
param($FileName, $Date = (Get-Date), $Format = 'dd-MM-yyyy-HH-mm-ss')
$SF = New-object System.IO.FileInfo $FileName
\"{0}\{1}-{2:$Format}{3}\" -F $SF.Directory, $SF.BaseName, $Date, $SF.Extension
} # New-FileNameTimeStamped
# variable pour le fichier log avec la date grace a la fonction
$LOG = New-FileNameTimeStamped -FileName 'c:\temp\Log.txt' -Format 'ddMMyyyy'
$Folder = \"C:\Purge\"
# supprimer les fichiers plus anciens que 30 jours
try {
Get-ChildItem $Folder -Recurse -Force -ErrorAction stop |
where {-not $_.PsIsContainer -and $_.LastWriteTime -lt (Get-Date).AddDays(-1)} |
ForEach-Object {
$_ | Remove-Item -Force -ErrorAction stop
$_.FullName | Out-File $LOG -Append
exit 0
}
}
catch {
exit 1
}
Merci d'avance pour votre aide
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 6 ans 10 mois #28885
par Philippe
Réponse de Philippe sur le sujet Re:Script avec retour code 1 ou 0
si tu fait un script de test qui ne contient que exit 1 ou return 1, a tu l'info erreur dans centreon ?
Connexion ou Créer un compte pour participer à la conversation.
- karaaslan
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 13
- Remerciements reçus 0
il y a 6 ans 10 mois #28886
par karaaslan
Réponse de karaaslan sur le sujet Re:Script avec retour code 1 ou 0
Le problème mon script de purge ne fonctionne pas, la purge des dossier ne fonctionne pas.
Et pour répondre a ta question mon script qui fonctionne sur centreon ci-dessous :
$path='D:\DATA\'
if($path -ne $null){
#Liste les fichier qui sont présent dans le dossier depuis plus d'1H
$list = Get-ChildItem $path | Where-Object {$_.LastWriteTime -lt (Get-Date).AddHours(-1) }
#Si des fichier sont trouvé = erreur
if ($list -ne $null)
{
Write-Warning \"Fichier présent depuis plus d'une heure\"
echo \"Test NOK\"
exit 2
}else{
#Sinon c'est qu'aucun fichier n'est trouvé donc pas d'erreur
Write-host \"pas de fichier présent depuis plus d'une heure\"
echo \"Test OK\"
exit 0
}
}
else
{
Write-Host 'error'
exit 2
} <br><br>Message édité par: birel, à: 9/05/19 10:42
Et pour répondre a ta question mon script qui fonctionne sur centreon ci-dessous :
$path='D:\DATA\'
if($path -ne $null){
#Liste les fichier qui sont présent dans le dossier depuis plus d'1H
$list = Get-ChildItem $path | Where-Object {$_.LastWriteTime -lt (Get-Date).AddHours(-1) }
#Si des fichier sont trouvé = erreur
if ($list -ne $null)
{
Write-Warning \"Fichier présent depuis plus d'une heure\"
echo \"Test NOK\"
exit 2
}else{
#Sinon c'est qu'aucun fichier n'est trouvé donc pas d'erreur
Write-host \"pas de fichier présent depuis plus d'une heure\"
echo \"Test OK\"
exit 0
}
}
else
{
Write-Host 'error'
exit 2
} <br><br>Message édité par: birel, à: 9/05/19 10:42
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 6 ans 10 mois #28890
par Philippe
Réponse de Philippe sur le sujet Re:Script avec retour code 1 ou 0
peut tu utilisé les balise code stp. tu surligne ton texte et tu clique sur le bouton code au dessus de la zone de saisie
en faite t'a pas de probleme de retour de code erreur dans le sens le code n'est pas renvoyer a centreon
mais plutot le script ne renvoie pas le bon code erreur !?
dans tous les cas ce script fonctionne mais perso si tu a une version de Powershell supperieur à la V2 utilise le parametre -file de Get-ChildItem
[code:1]$path = 'D:\DATA'
if ($path -ne $null) {
#Liste les fichier qui sont présent dans le dossier depuis plus d'1H
$list = Get-ChildItem $path -file | Where-Object {$_.LastWriteTime -lt (Get-Date).AddHours(-1) }
#Si des fichier sont trouvé = erreur
if ($list) {
Write-Warning \"Fichier présent depuis plus d'une heure\"
Write-host \"Test NOK\"
exit 2
}
else {
#Sinon c'est qu'aucun fichier n'est trouvé donc pas d'erreur
Write-host \"pas de fichier présent depuis plus d'une heure\"
Write-Host \"Test OK\"
exit 0
}
}
else {
Write-Host 'error'
exit 2
} [/code:1]
si tu a un message d'erreur peut tu nous l'indiquer stp
.
en faite t'a pas de probleme de retour de code erreur dans le sens le code n'est pas renvoyer a centreon
mais plutot le script ne renvoie pas le bon code erreur !?
dans tous les cas ce script fonctionne mais perso si tu a une version de Powershell supperieur à la V2 utilise le parametre -file de Get-ChildItem
[code:1]$path = 'D:\DATA'
if ($path -ne $null) {
#Liste les fichier qui sont présent dans le dossier depuis plus d'1H
$list = Get-ChildItem $path -file | Where-Object {$_.LastWriteTime -lt (Get-Date).AddHours(-1) }
#Si des fichier sont trouvé = erreur
if ($list) {
Write-Warning \"Fichier présent depuis plus d'une heure\"
Write-host \"Test NOK\"
exit 2
}
else {
#Sinon c'est qu'aucun fichier n'est trouvé donc pas d'erreur
Write-host \"pas de fichier présent depuis plus d'une heure\"
Write-Host \"Test OK\"
exit 0
}
}
else {
Write-Host 'error'
exit 2
} [/code:1]
si tu a un message d'erreur peut tu nous l'indiquer stp
.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.042 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Script avec retour code 1 ou 0