Ich habe eine Textdatei, die ich in Zugriffstabelle über die Eingabeaufforderung importieren. Das Problem ist, dass diese Textdatei eine leere Zeile als letzte Zeile enthält. Kann mir jemand ein Skript zur Verfügung stellen, das meine leere Zeile am Ende der Datei löscht, damit ich meinen Automatisierungsprozess abschließen kann. Ich verwende Windows 2000-Plattform.Wie kann ich die letzte Zeile einer Textdatei mit der Eingabeaufforderung löschen?
Antwort
Here ist ein Skript, das leere Zeilen aus einer Textdatei löscht. Es ist 2000.
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.Readline
strLine = Trim(strLine)
If Len(strLine) > 0 Then
strNewContents = strNewContents & strLine & vbCrLf
End If
Loop
objFile.Close
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForWriting)
objFile.Write strNewContents
objFile.Close
komm jetzt, siehst du das nicht in 1 Zeile mit dem richtigen Werkzeug gemacht werden? – Haoest
Yup, oder Sie können einfach dieses Skript ohne ein zusätzliches Tool verwenden, um das Sie sich sorgen müssen. Seine alte Technologie, aber es funktioniert. Er fragte nach win2k, sonst hätte ich PowerShell benutzt. – notandy
(Get-Inhalt C: \ File.txt) | wo {$ _ -ne ""} | out-file c: \ file.txt – notandy
Dies funktioniert mit head
head -n -1 input.txt > output.txt
Leider denke ich Windows nicht mit diesem nützlichen Tool standardmäßig kommt, sondern Cygwin Installation gibt Ihnen das und viel andere Sachen auch.
Sie könnten versuchen, hier nach Windows-Ports von Unix-Dienstprogrammen zu suchen: http://unxutils.sourceforge.net/ – jdigital
sed '$d'
löscht die letzte Zeile, ist aber nicht in Windows 2000 die Gnu utils Holen Sie sich ein für Windows sed zu erhalten.
Unter this site finden Sie eine Liste anderer sed-Befehle zum Bearbeiten von Dateien.
Samar, werden Sie eine andere Frage zum Löschen anderer leerer Zeilen in der Datei stellen? –