2016-04-19 1 views
1

J'ai un fichier journal et utilisé la commande Get-Content myLog.log –Wait pour afficher le contenu de ce fichier, tout comme avec l'équivalent linux tail.Pourquoi "Get-Content" ne rafraîchit pas les contenus en direct?

J'ai remarqué que le contenu n'est pas mis à jour en direct comme je le sais depuis tail. Le contenu est actualisé uniquement après un intervalle spécifique. Comment puis-je changer l'intervalle, je pense que je dois passer un argument pour Wait afin qu'il sache combien de temps attendre?

Répondre

1

L'applet de commande Get-Content n'expose pas de propriété ni de fonction pour définir l'intervalle d'actualisation. Vous devez probablement le faire vous-même:

$linesPrinted = 0; 

while ($true) 
{ 
    $content = Get-Content myLog.log 
    $currentLineCount = $content | Measure-Object -Line | select -expand Lines 

    if ($currentLineCount -gt $linesPrinted) 
    { 
     $content[$linesPrinted .. $currentLineCount] 
     $linesPrinted = $currentLineCount 
    } 


    Sleep -Milliseconds 100 
} 
+0

Dans quel format dois-je enregistrer ce script pour le rendre exécutable? – Black

+1

Pour tester vos scripts, vous devriez démarrer 'Powershell_ISE' (mieux que Admin). Copiez et collez le script dans le «Script Script» et appuyez sur «F5» pour l'exécuter. Plus tard, vous pouvez enregistrer le script en tant que fichier 'ps1' et l'exécuter en utilisant powershell. –

+0

Thx, mais votre code ne fonctionne pas comme prévu, il charge toujours le fichier complètement depuis le début. – Black