tegee08

Textdatei erste Zeile löschen und Gänsefüßchen entfernen

Hallo zusammen,

ich bin begeistert von diesem Forum, habe in 2 Stunden schon sehr viel gelernt! Einfach klasse.

Jetzt zu meinem Problem:

habe eine Datei mit folgendem Ihnhalt
*Anfang*
Firma;Vorname;Name;Strasse;Plz;Ort;Lkz;ReNr;Verfahren
"musterfirma";"Matthias";"Kfsdsdgdf";"straßenplatz 15";"79332";"MtrettrreOrt";"DE"
"musterfirma";"Manfred";"dfgdfgf";"straßenweg 15";"79778";"MtrettrreOrt";"DE"

usw
*Ende*

diese Datei muss an ein Programm übergeben werden, wobei die erste Zeile raus muss und die Gänsefüßchen verschwinden müssen.

Bislang mache ich das händisch mit dem guten alten Notepad.

Das ersetzen der Gänsefüßchen habe ich auch schon hinbekommen mit Hilfe des Forums. Das sieht so aus:

*Anfang*
@echo off & setlocal
set "Ein=c:\test.txt"
set "Aus=c:\test2.txt.txt"

set "Cvt=%temp%\ConvSC.vbs"
echo Set fso=CreateObject("Scripting.FileSystemObject"):fso.OpenTextFile("%Aus%",2,True).Write Replace(fso.OpenTextFile("%Ein%",1).ReadAll,Chr(34),"")>"%Cvt%"
cscript //nologo "%Cvt%"
del "%Cvt%"
*Ende*

funktioniert auch super gut

Ich würde mich freuen, wenn mir jemand bei dem Problem hilft, da ich überhaupt keine Ahnung davon habe.

Schon mal besten Dank.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 85789

Url: https://administrator.de/forum/textdatei-erste-zeile-loeschen-und-gaensefuesschen-entfernen-85789.html

Ausgedruckt am: 02.05.2025 um 04:05 Uhr

Biber
Biber 17.04.2008 um 18:56:07 Uhr
Goto Top
Moin tegge08,

willkommen im Forum.
Mit reinen Batchmitteln ginge es als Oneliner vom CMD-Prompt so:
>type e:\work\Gangster.txt
Firma;Vorname;Name;Strasse;Plz;Ort;Lkz;ReNr;Verfahren
"musterfirma";"Matthias";"Kfsdsdgdf";"straßenplatz 15";"79332";"MtrettrreOrt";"DE"  
"musterfirma";"Manfred";"dfgdfgf";"straßenweg 15";"79778";"MtrettrreOrt";"DE"  

>setlocal enableDelayedExpanson & @for /f "skip=1 delims=" %i in (e:\work\Gangster.txt) do @set "ln=%i" && @echo !ln:"=!  
musterfirma;Matthias;Kfsdsdgdf;straßenplatz 15;79332;MtrettrreOrt;DE
musterfirma;Manfred;dfgdfgf;straßenweg 15;79778;MtrettrreOrt;DE
Die zweite mit ">" beginnende Zeile ist die von Dir einzugebende - Dateinamen natürlich anpassen.

Wenn das so passt, dann kannst Du diese Bildscirmausgabe umleiten mit ">neueDatei.txt" am Einde der Zeile.

Und/Oder das ganze als Batchdatei speichern, dann aber alle %i zu %%i ändern.

Grüße
Biber

P.S. Wie Du Deinen Code als formatieren kannst steht in den Häufigen Fragen/FAQ.
bastla
bastla 17.04.2008 um 19:13:02 Uhr
Goto Top
Hallo tegee08 und willkommen im Forum!

Die VBS-gestützte Variante sähe so aus:
@echo off & setlocal
set "Ein=c:\test.txt"  
set "Aus=c:\test2.txt.txt"  

set "Cvt=%temp%\ConvSC.vbs"  
echo Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile("%Ein%").ReadAll:fso.OpenTextFile("%Aus%",2,True).Write Replace(Mid(T,InStr(T,vbCrLF)+2),Chr(34),"")>"%Cvt%"  
cscript //nologo "%Cvt%"  
del "%Cvt%"  

Grüße
bastla
tegee08
tegee08 17.04.2008 um 19:56:18 Uhr
Goto Top
Klasse!

damit bin ich schon ein Stück weiter.

Geht das auch, ohne, dass eine weitere Datei erzeugt wird, also die vorhandene bearbeiten, erste Zeile löschen, Gänsefüßchen rausschmeißen und wieder speichern?

ach ja und was mir leider erst jetzt aufgefallen ist....am besten noch den String Firma; suchen und wenn nicht vorhanden, dann nicht die erste Zeile löschen.

oder andersrum: nur wenn Firma; in erster Zeile vorhanden ist dann löschen sonst nur Gänsefüßchen raus.

thx
bastla
bastla 17.04.2008 um 20:33:23 Uhr
Goto Top
Hallo tegee08!

Das integrierte Script ließe sich zwar noch immer in eine Zeile schreiben, aber durch die Aufteilung wird's etwas handlicher (und lesbarer face-wink):
@echo off & setlocal
set "Ein=c:\test.txt"  

set "Cvt=%temp%\ConvSC.vbs"  
echo Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile("%Ein%").ReadAll>"%Cvt%"  
echo If InStr(Split(T,vbCrLF)(0),"Firma;") Then T=Mid(T,InStr(T,vbCrLF)+2)>>"%Cvt%"  
echo fso.OpenTextFile("%Ein%",2,True).Write Replace(T,Chr(34),"")>>"%Cvt%"  
cscript //nologo "%Cvt%"  
del "%Cvt%"  

Grüße
bastla
Biber
Biber 17.04.2008 um 21:21:35 Uhr
Goto Top
@bastla
aber durch die Aufteilung wird's etwas handlicher (und lesbarer

Na ja, das würde ich nicht verallgemeinern... ob das sooo viele sooo fließend lesen können?

Also - ich kann es ja gut lesen, aber ich kenne ein paar Leute, die etwas hysterisch zu Kichern beginnen, wenn ich denen das am Telefon durchgebe...

Grüße
Biber
bastla
bastla 17.04.2008 um 21:27:19 Uhr
Goto Top
@Biber
Ich sag doch: lesbarer face-wink - und ich hab' schon Schlimmeres als das da verbrochen (und Du auch face-wink) ...

ein paar Leute, die etwas hysterisch zu Kichern beginnen, wenn ich denen das am Telefon durchgebe...
Die haben's aber sicher alle verdient ...

BTW: Telefonierst Du eigentlich öfter Bätche?

Grüße
bastla
Biber
Biber 17.04.2008 um 23:15:41 Uhr
Goto Top
@bastla
BTW: Telefonierst Du eigentlich öfter Bätche?
Unter uns: Im Moment habe ich mich bei einer anonym bleiben wollenden magentafarbenen Firma verdingt.
Deren Kerngeschäft ist witzigerweise ...nein, das verrat ich jetzt nicht.

Und für die ist jedenfalls ein per Telefon durchbuchstabierter Batch die einzige stabile Remoteverbindung, die sie kennen..... face-big-smile
... vorausgesetzt die beiden Telefonierer haben ihre Handys bei O2 und Vodafone und nix Pinkes...

Aber nich' weitererzählen bitte.

Grüße
Biber
bastla
bastla 17.04.2008 um 23:23:10 Uhr
Goto Top
@Biber
Im Moment habe ich mich bei einer anonym bleiben wollenden magentafarbenen Firma verdingt.
Na, dann wird's mit denen ja doch noch was ... face-wink

Fangen solche Bätche dann übrigens so an?
@echo off & setlocal & color fd

Grüße
bastla
Biber
Biber 18.04.2008 um 00:23:02 Uhr
Goto Top
@bastla

Wo denkst Du hin - hier hat jeder Rechner als Standard:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor
    DefaultColor        REG_DWORD       0xfd

... und macht düdüddelidü bei der Anmeldung.

Und wir haben MSOD's statt der doofen BSOD's...

Na gut, genug OT für heute ...

Grüße
Biber
tegee08
tegee08 18.04.2008 um 08:56:19 Uhr
Goto Top
Danke an euch Beide

das klappt wie verrückt face-smile

einen habe ich noch (weil ich echt im Tal der Ahnungslosen bin)

kriegt ihr das noch rein, dass die Datei zum Abschluss an eine bestimmte Stelle kopiert wird z.B. d:\daten
Biber
Biber 18.04.2008 um 11:04:24 Uhr
Goto Top
Moin, tegee08,

dann könntest Du die ursprüngliche Variante mit der Variablen %Aus5 wieder beleben.

...
set "Ein=c:\test.txt"  
set "AusDir=D:\Daten"  
....
....
cscript //nologo "%Cvt%"  
copy /y "%ein%" "%AusDir%\"  

Wenn es denn wirklich ein Kopieren soll.
Du könntest sonst -IMHO besser- lieber das Original unverändert lassen und die Kopie gleich in D:\Daten ablegen.

Grüße
Biber
tegee08
tegee08 18.04.2008 um 13:38:35 Uhr
Goto Top
ja, danke für den Gedankenanstoß, das mit dem Original mache ich aus so

vielen dank für alles, hat mir sehr geholfen