2017-04-12 12 views
0

Ich möchte eine Datei löschen, nachdem sie geschlossen wurde.Eine TXT-Datei löschen, nachdem sie geschlossen wurde?

Beispiel:

$content | Out-File info.txt 
Invoke-Item info.txt 

Dies öffnet die Datei info.txt mit dem Inhalt der $content.

Jetzt möchte ich nur, wenn diese Datei geschlossen ist, löschen Sie es.

Irgendeine Idee, wie man das macht? Ich suppose ich muss etwas wie überprüfen, ob info.txt geöffnet ist, wenn nicht dann Remove-Item info.txt laufen?

Im Moment benutze ich diese „dirty“ Lösung, die Kraft ist, die Datei nach 3 Sekunden zu löschen, ist es Zeit, um in den Editor zu öffnen:

Start-Sleep -s 3 
Remove-Item -Force -ErrorAction SilentlyContinue info.txt 

Es bleibt in Notepad geöffnet für die Anzeige, auch wenn es doesn‘ Ich existiere nicht mehr und wenn ich die Datei schließe, ist sie bereits gelöscht, also funktioniert es irgendwie, aber ich suche immer noch nach einer geeigneten Methode, um zu prüfen, ob die Datei vor dem Löschen geschlossen wurde.

Antwort

4

Versuchen Sie folgendes:

Start-Process Notepad.exe U:\test.txt -Wait 
Remove-Item U:\test.txt 
+0

Ah ja, warte! Ich hätte das erwartet :) Vielen Dank, es funktioniert genau wie nötig. – Rakha

1

Also, ich bin beschränkt auf Antworten in einer "Antwort" wegen meiner Reputation.

Grundsätzlich wäre mein Kommentar "Muss dies in einer Textdatei geöffnet werden?"

Meine alternative Vorschläge wäre vielleicht eine der folgenden Aktionen statt

$content | Out-GridView 

zu tun Oder vielleicht

$content | Format-Table 

Sie sollten sich trotzdem alle Daten sehen, und noch in der Lage sein, Daten von ihm zu kopieren ohne eine Datei irgendwo zu speichern, die dann gelöscht werden muss.

Wäre das akzeptabel?

+0

Gute Lösung jedoch die txt-Datei die perfekte Formatierung bietet, so dass es in diesem Fall erforderlich ist. Vielen Dank! – Rakha

Verwandte Themen