TUTOS.EU

Ecrire dans un fichier de log en Powershell

Comment écrire dans un fichier portant le même nom que le script en cours et dans le même répertoire

Basiquement, pour écrire le résultat d'une commande powershell dans un fichier, on utilise out-file.

Exemple :

get-process | out-file C:\docs\process.txt
Lien vers le fichier : cliquez ici

Comme indiqué dans le titre, on va écrire dans un fichier situé dans le même répertoire que le script. Ce fichier portera le même nom que le script en cours à la différence qu'il aura dans son nom le suffixe _log

$varCheminRepertoireScript = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition)
$currentScriptName = $MyInvocation.MyCommand.Name #Récupération du nom du script en cours

#On ne prend que le nom du script sans l'extention. Pour cela on chercher la position d'un point en partant de la droite et on prend tout ce qui est à sa gauche
$currentScriptName = $currentScriptName.substring(0,$($currentScriptName.lastindexofany(".")))

#Création du fichier vierge
$EmplacementFichier = "$varCheminRepertoireScript\$($currentScriptName)_Log.txt"
$MonFichier = New-Item -type file $EmplacementFichier -Force

$MyLine = "Une ligne dans mon fichier de log"
add-content $MonFichier $MyLine
Lien vers le fichier : cliquez ici

Si vous voulez mettre la date et l'heure, vous pouvez adapter ainsi :

$varMaDate = get-date -format "yyyy_MM_dd_-_HH_mm_ss"
$varCheminRepertoireScript = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition)
$currentScriptName = $MyInvocation.MyCommand.Name #Récupération du nom du script en cours
$currentScriptName = $currentScriptName.substring(0,$($currentScriptName.lastindexofany(".")))

#Création du fichier vierge
$EmplacementFichier = "$varCheminRepertoireScript\$($currentScriptName)_Log.txt"
$MonFichier = New-Item -type file $EmplacementFichier -Force

$MyLine = "$varMaDate Exécution du script"
add-content $MonFichier $MyLine
Lien vers le fichier : cliquez ici

Pages Web

Site WebDescription
ss64.comSend output to a file