Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Zwei Zeilen in einer Datei auslesen und ggf. Datei löschen

Frage Entwicklung Batch & Shell

Mitglied: amurcat

amurcat (Level 1) - Jetzt verbinden

19.10.2009 um 12:25 Uhr, 3326 Aufrufe, 2 Kommentare

Hallo,

vielleicht kann mir hier jemande helfen. Ich habe ein Problem und suche ein Script. Ich habe hier schon einiges gefunden und versucht umzubauen, hab das aber irgendwie nicht hinbekommen.

Es geht um Folgendes: ich habe Dateien in denen stehen Werte zum Einlesen in eine Buchhaltungssoftware. Diese wirft aber Fehler wenn kein Vorgang auf dem Konto war. In der Datei sind dann zwei Zeilen nahezu identisch:


:20:STARTUMSE
:25:?????????????????/?????????
:28C:00000/001
:60F:C091015EUR536,82
:62F:C091015EUR536,82


Es geht um die Zeilen 60F und 62F. Wenn die EUR Werte gleich sind dann kann die Datei nicht importtiert werden. Die Werte stehen leider auch nicht immer in den gleichen Zeilen.

Gibts da ne ganz einfache Lösung, wie ich die Dateien per Batch / Script unter Windows (XP, 2003R2) aussortieren könnte?

Vielen Dank für Eure Hilfe!

Grüße

Michael / Amurcat
Mitglied: solionte
19.10.2009 um 13:31 Uhr
mit vbscript :
aber was willst du als Ergebnis
EUR536,82
dann speichere diese datei unter name.vbs und führ die aus.
'''''''''''''''''''''''
set fso = createobject("scripting.filesystemobject")
set file = fso.getfile("C:\Dokumente und Einstellungen\User\Desktop\quelle.txt")



set datei =fso.opentextfile("C:\Dokumente und Einstellungen\User\Desktop\ziel.txt",8,true)


set stream = file.openastextstream(1) 'datei zum lesen öffnen

do
stream.skip(12) 'erste 12 Zeichen überspringen
line = stream.Readline

if instr(line,"EUR") then datei.Writeline line 'holt die Zeilen mit EUR

loop while not stream.atendofstream

stream.close
datei.close
msgbox "Fertig"
Bitte warten ..
Mitglied: colinardo
19.10.2009 um 14:31 Uhr
Folgendes Script durchsucht in einem angegebenen Verzeichnis alle Dateien nach deiner doppelten Zeichenfolge "EUR" egal in welchen Zeilen sie stehen.Es vergleicht dazu alles was hinter "EUR" steht. Zum Schluss kommt eine Abfrage ob du die entsprechenden Dateien in einen Unterordner verschieben willst.
Anpassen musst du die Variable "rootFolder" für das Verzeichnis in dem die Dateien liegen.

VBS-Script:
01.
set objFS = CreateObject("Scripting.FileSystemObject") 
02.
set rootFolder = objFS.GetFolder("C:\Test") 
03.
set files = rootFolder.files 
04.
dim array_selected_files() 
05.
count = 0 
06.
for each file in files 
07.
	dim already_found, first_amount 
08.
	set objFile = objFS.OpenTextFile(file.Path, 1) 
09.
	Do While objFile.AtEndOfStream <> true 
10.
		line_text = objFile.ReadLine() 
11.
		if InStr(1,line_text,"EUR") > 0 then 
12.
			if already_found = true Then 
13.
				if Trim(Mid(line_text, InStr(1,line_text,"EUR")+3,Len(line_text))) = Trim(first_amount) Then 
14.
					ReDim Preserve array_selected_files(count + 1) 
15.
					array_selected_files(count) = file.Path 
16.
					count = count + 1  
17.
				End if 
18.
			Else 
19.
				first_amount = Mid(line_text, InStr(1,line_text,"EUR")+3,Len(line_text)) 
20.
				already_found = True 
21.
			End if 
22.
		End if 
23.
	 Loop 
24.
	 objFile.Close 
25.
	 already_found = False 
26.
	 first_amount = "" 
27.
 Next 
28.
 
29.
if count > 0 then 
30.
	if msgbox ("Es wurden "& count & " Dateien gefunden sollen sie nach '" & rootFolder.Path & "\Aussortiert\' verschoben werden?: ", 36) = 6 Then 
31.
		for i = 0 to Ubound(array_selected_files) - 1 
32.
			set objFile = objFS.GetFile(array_selected_files(i)) 
33.
			If objFS.FolderExists(rootFolder & "\Aussortiert") Then 
34.
				objFile.Move(rootFolder & "\Aussortiert\") 
35.
			Else 
36.
				objFS.CreateFolder(rootFolder & "\Aussortiert") 
37.
				objFile.Move(rootFolder & "\Aussortiert\") 
38.
			End If 
39.
		Next 
40.
		Wscript.echo "Fertig!" 
41.
	End if  
42.
Else 
43.
	wscript.echo "Keine entsprechenden Dateien gefunden!" 
44.
End If
Bitte warten ..
Ähnliche Inhalte
Installation
gelöst Mit Powershell in einer Datei eine Zeile auslesen (6)

Frage von Bommi1961 zum Thema Installation ...

Batch & Shell
Powershell - Zeilen in einer csv löschen bis (7)

Frage von Franz-Josef-II zum Thema Batch & Shell ...

Perl
gelöst Mit Perl aus einer Datei teilidentische Zeilen löschen (5)

Frage von Jeduja zum Thema Perl ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (16)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Router & Routing
FTTH bzw FTTB Router (13)

Frage von ukulele-7 zum Thema Router & Routing ...