2016-04-23 15 views
0

Dies ist meine Klassenbibliothek. Wenn ich zum ersten Mal die Taste drücke, läuft mein Skript einwandfrei, aber es wird erneut ausgelöst:Fehler beim Ausführen von PowerShell-Skript Von Windows Formularanwendung

Diese Funktion kann nicht aufgerufen werden, da der aktuelle Host sie nicht implementiert

Wenn ich den Ordner Protokolle gelöscht, die während der Skriptausführung erstellt wird, dann funktioniert es wieder gut.

Mein Skript:

rmdir D:\Logs 
mkdir D:\Logs 
Get-EventLog Application |Format-List | Out-File D:\Logs\app.txt 
Get-EventLog System |Format-List | Out-File D:\Logs\app.txt 

Antwort

1

rmdir braucht Sie vor dem Löschen des Ordners zu bestätigen, wenn der Ordner nicht leer ist (Sie müssen ‚Y‘ eingeben und dann Enter). Aus diesem Grund erhalten Sie eine Ausnahme, da die Benutzerinteraktion nicht unterstützt wird.

Verwenden Sie den Befehl Remove-Item mit -Recurse -Force Parameter können das Verzeichnis automatisch entfernen. Verwenden Sie die folgenden Befehle anstelle von rmdir/mkdir.

Remove-Item D:\Logs -Recurse -Force 
New-Item -ItemType directory -Path D:\Logs 
+0

Vielen Dank .. Es funktioniert für mich, aber es braucht zu viel Zeit, um das Ergebnis zu generieren. Gibt es eine Möglichkeit, schnelleres Ergebnis zu generieren? – jasmin

+0

Ich fürchte, es muss so lang sein, einer meiner Maschine die Datei ist etwa 60M, gibt es eine Menge Einträge im Ereignisprotokoll – kennyzx

+0

so gibt es keine Möglichkeit, die Lösung schneller? und wenn ich die i-datei von dem vom benutzer angegebenen ort lesen möchte, was soll ich tun? – jasmin

Verwandte Themen