Question
mise en page de log
- heshima
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 13 ans 2 mois #13731
par heshima
mise en page de log a été créé par heshima
bonjour,
Je suis en train de mettre en place un Script pour supprimer des fichiers dans une arborescence de répertoire.Je le mettrai par la suite sur un serveur avec une tâche planifié.
mon soucis est que le fichier log mis en place repertoriant les fichiers supprimés et leurs arborescence est illisible. il m'affiche tout sur la même ligne. comment puis e faire pour que une entrée = une ligne.
en vous remerciant.
ci-dessous mon code :
#================== curseur sur le dossier Scan ==============
cd c:\users\#######\Desktop\test
#================== création fichier log =====================
$logFile = \"c:\users\#########\Desktop\"
Start-transcript -path $logFile
#================== création Variable =========================
$date = Get-Date -displayhint date
$i = 0
#================== création Tableau =========================
$array = @()
$item = Get-ChildItem -Include *.* -Recurse
$array += $item
$array += \"fin\"
#================== Suppression ==============================
while ($array[$i] -ne \"fin\")
{
$Nrem = (get-item $array[$i]).name
if ($Nrem -eq \"_REGLES_DE_BASE.PDF\")
{
Write-Host \"pas de copie possible pour\" , $array[$i]
}
else
{
Write-Host $array[$i]
rmdir $array[$i]
}
$i++
}
#=================== Arret fichier log ======================
Stop-transcript
#==========================================================================
# SETTINGS ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$expediteur = \"#####@###.###\"
$destinataire = \"#####@###.###\"
$serveur = \"###########.intranet\"
$PJ = $logFile
$objet = \"suppression de fichiers \" + [System.DateTime]::Now
$texte = \"Vous trouverez en fichier joint le fichier de log spécifiant les objets supprimés par le script\"
#==========================================================================
# SCRIPT ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $PJ
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]:: DefaultNetworkCredentials
$client.Send($message)
#==========================================================================
#FIN DU SCRIPT
#==========================================================================
Je suis en train de mettre en place un Script pour supprimer des fichiers dans une arborescence de répertoire.Je le mettrai par la suite sur un serveur avec une tâche planifié.
mon soucis est que le fichier log mis en place repertoriant les fichiers supprimés et leurs arborescence est illisible. il m'affiche tout sur la même ligne. comment puis e faire pour que une entrée = une ligne.
en vous remerciant.
ci-dessous mon code :
#================== curseur sur le dossier Scan ==============
cd c:\users\#######\Desktop\test
#================== création fichier log =====================
$logFile = \"c:\users\#########\Desktop\"
Start-transcript -path $logFile
#================== création Variable =========================
$date = Get-Date -displayhint date
$i = 0
#================== création Tableau =========================
$array = @()
$item = Get-ChildItem -Include *.* -Recurse
$array += $item
$array += \"fin\"
#================== Suppression ==============================
while ($array[$i] -ne \"fin\")
{
$Nrem = (get-item $array[$i]).name
if ($Nrem -eq \"_REGLES_DE_BASE.PDF\")
{
Write-Host \"pas de copie possible pour\" , $array[$i]
}
else
{
Write-Host $array[$i]
rmdir $array[$i]
}
$i++
}
#=================== Arret fichier log ======================
Stop-transcript
#==========================================================================
# SETTINGS ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$expediteur = \"#####@###.###\"
$destinataire = \"#####@###.###\"
$serveur = \"###########.intranet\"
$PJ = $logFile
$objet = \"suppression de fichiers \" + [System.DateTime]::Now
$texte = \"Vous trouverez en fichier joint le fichier de log spécifiant les objets supprimés par le script\"
#==========================================================================
# SCRIPT ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $PJ
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]:: DefaultNetworkCredentials
$client.Send($message)
#==========================================================================
#FIN DU SCRIPT
#==========================================================================
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 13 ans 2 mois #13733
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:mise en page de log
Salut,
essaie avec ceci :
[code:1]
$oldOFS,$OFS=$OFS,\"`r`n\"
$attachment = new-object System.Net.Mail.Attachment $PJ
$OFS=$oldOFS
...
[/code:1]
Sinon modifie la création de la PJ comme indiqué ici (une ligne de code C# à adapter).
essaie avec ceci :
[code:1]
$oldOFS,$OFS=$OFS,\"`r`n\"
$attachment = new-object System.Net.Mail.Attachment $PJ
$OFS=$oldOFS
...
[/code:1]
Sinon modifie la création de la PJ comme indiqué ici (une ligne de code C# à adapter).
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- heshima
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 13 ans 2 mois #13734
par heshima
Réponse de heshima sur le sujet Re:mise en page de log
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 13 ans 2 mois #13736
par Laurent Dardenne

Un dernier essai :
[code:1]
$oldOFS,$OFS=$OFS,\"`r`n\"
$attachment = new-object System.Net.Mail.Attachment \"$PJ\"
$OFS=$oldOFS
[/code:1]
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:mise en page de log
Un dernier essai :
[code:1]
$oldOFS,$OFS=$OFS,\"`r`n\"
$attachment = new-object System.Net.Mail.Attachment \"$PJ\"
$OFS=$oldOFS
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- heshima
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 13 ans 2 mois #13740
par heshima
Réponse de heshima sur le sujet Re:mise en page de log
il me remet la même erreur 
Du coup, au lieu de passer par du Log je fait un export csv.
donc je retrouve bien ma mise en page mais j'obtiens toujours le même problème.
[code:1]#================== curseur sur le dossier Scan ==============
cd c:\users\######\Desktop\test
#================== création fichier log =====================
#$logFile = \"c:\users\#######\Desktop\test\"
#Start-transcript -path $logFile
#================== création Variable =========================
$date = Get-Date -displayhint date
$i = 0
#================== création Tableau =========================
$array = @()
$item = Get-ChildItem -Include *.pdf -Recurse
$array += $item
$array += \"fin\"
#================== Suppression ==============================
while ($array[$i] -ne \"fin\"«»)
{
$Nrem = (get-item $array[$i]).name
$moncsv = $array | select name | export-csv c:\users\#####\Desktop\test\Export_suppress_Scan.csv
if ($Nrem -eq \"_REGLES_DE_BASE.PDF\"«»)
{
Write-Host \"pas de suppression possible pour\" , $array[$i]
}
else
{
Write-Host $array[$i]
rmdir $array[$i]
}
$i++
}
#=================== Arret fichier log ======================
# Stop-transcript
#==========================================================================
# SETTINGS ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$expediteur = \"######@#####.###\"
$destinataire = \"#####@#####.###\"
$serveur = \"#######.intranet\"
$PJ = $moncsv
$objet = \"suppression de fichiers \" + [System.DateTime]::Now
$texte = \"Vous trouverez en fichier joint le fichier de log spécifiant les objets supprimés par le script\"
#==========================================================================
# SCRIPT ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
#$attachment = new-object System.Net.Mail.Attachment $PJ
#$oldOFS,$OFS=$OFS,\"`r`n\"
$attachment = new-object System.Net.Mail.Attachment \"$PJ\"
#$OFS = $oldOFS
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::«»DefaultNetworkCredentials
$client.Send($message)[/code:1]
Du coup, au lieu de passer par du Log je fait un export csv.
donc je retrouve bien ma mise en page mais j'obtiens toujours le même problème.
[code:1]#================== curseur sur le dossier Scan ==============
cd c:\users\######\Desktop\test
#================== création fichier log =====================
#$logFile = \"c:\users\#######\Desktop\test\"
#Start-transcript -path $logFile
#================== création Variable =========================
$date = Get-Date -displayhint date
$i = 0
#================== création Tableau =========================
$array = @()
$item = Get-ChildItem -Include *.pdf -Recurse
$array += $item
$array += \"fin\"
#================== Suppression ==============================
while ($array[$i] -ne \"fin\"«»)
{
$Nrem = (get-item $array[$i]).name
$moncsv = $array | select name | export-csv c:\users\#####\Desktop\test\Export_suppress_Scan.csv
if ($Nrem -eq \"_REGLES_DE_BASE.PDF\"«»)
{
Write-Host \"pas de suppression possible pour\" , $array[$i]
}
else
{
Write-Host $array[$i]
rmdir $array[$i]
}
$i++
}
#=================== Arret fichier log ======================
# Stop-transcript
#==========================================================================
# SETTINGS ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$expediteur = \"######@#####.###\"
$destinataire = \"#####@#####.###\"
$serveur = \"#######.intranet\"
$PJ = $moncsv
$objet = \"suppression de fichiers \" + [System.DateTime]::Now
$texte = \"Vous trouverez en fichier joint le fichier de log spécifiant les objets supprimés par le script\"
#==========================================================================
# SCRIPT ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
#$attachment = new-object System.Net.Mail.Attachment $PJ
#$oldOFS,$OFS=$OFS,\"`r`n\"
$attachment = new-object System.Net.Mail.Attachment \"$PJ\"
#$OFS = $oldOFS
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::«»DefaultNetworkCredentials
$client.Send($message)[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 13 ans 2 mois #13745
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:mise en page de log
Je ne pourrais aller plus loin, côté test.
Il se peut que le texte ne contienne que des lignes avec des line feed \"`n\" sans retour chariot \"`r`n\" ...
Si tu crées un fichier avec Notepad et que tu l'envois en PJ, as-tu le même comportement ?
Il se peut que le texte ne contienne que des lignes avec des line feed \"`n\" sans retour chariot \"`r`n\" ...
Si tu crées un fichier avec Notepad et que tu l'envois en PJ, as-tu le même comportement ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.053 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- mise en page de log