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
GELÖST

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

Frage Entwicklung Batch & Shell

Mitglied: tegee08

tegee08 (Level 1) - Jetzt verbinden

17.04.2008, aktualisiert 18.04.2008, 8440 Aufrufe, 12 Kommentare

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.
Mitglied: Biber
17.04.2008 um 18:56 Uhr
Moin tegge08,

willkommen im Forum.
Mit reinen Batchmitteln ginge es als Oneliner vom CMD-Prompt so:
01.
>type e:\work\Gangster.txt 
02.
Firma;Vorname;Name;Strasse;Plz;Ort;Lkz;ReNr;Verfahren 
03.
"musterfirma";"Matthias";"Kfsdsdgdf";"straßenplatz 15";"79332";"MtrettrreOrt";"DE" 
04.
"musterfirma";"Manfred";"dfgdfgf";"straßenweg 15";"79778";"MtrettrreOrt";"DE" 
05.
 
06.
>setlocal enableDelayedExpanson & @for /f "skip=1 delims=" %i in (e:\work\Gangster.txt) do @set "ln=%i" && @echo !ln:"=! 
07.
musterfirma;Matthias;Kfsdsdgdf;straßenplatz 15;79332;MtrettrreOrt;DE 
08.
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 <code> formatieren kannst steht in den Häufigen Fragen/FAQ.
Bitte warten ..
Mitglied: bastla
17.04.2008 um 19:13 Uhr
Hallo tegee08 und willkommen im Forum!

Die VBS-gestützte Variante sähe so aus:
01.
@echo off & setlocal 
02.
set "Ein=c:\test.txt" 
03.
set "Aus=c:\test2.txt.txt" 
04.
 
05.
set "Cvt=%temp%\ConvSC.vbs" 
06.
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%" 
07.
cscript //nologo "%Cvt%" 
08.
del "%Cvt%"
Grüße
bastla
Bitte warten ..
Mitglied: tegee08
17.04.2008 um 19:56 Uhr
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
Bitte warten ..
Mitglied: bastla
17.04.2008 um 20:33 Uhr
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 ):
01.
@echo off & setlocal 
02.
set "Ein=c:\test.txt" 
03.
 
04.
set "Cvt=%temp%\ConvSC.vbs" 
05.
echo Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile("%Ein%").ReadAll>"%Cvt%" 
06.
echo If InStr(Split(T,vbCrLF)(0),"Firma;") Then T=Mid(T,InStr(T,vbCrLF)+2)>>"%Cvt%" 
07.
echo fso.OpenTextFile("%Ein%",2,True).Write Replace(T,Chr(34),"")>>"%Cvt%" 
08.
cscript //nologo "%Cvt%" 
09.
del "%Cvt%"
Grüße
bastla
Bitte warten ..
Mitglied: Biber
17.04.2008 um 21:21 Uhr
@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
Bitte warten ..
Mitglied: bastla
17.04.2008 um 21:27 Uhr
@Biber
Ich sag doch: lesbarer - und ich hab' schon Schlimmeres als das da verbrochen (und Du auch ) ...

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
Bitte warten ..
Mitglied: Biber
17.04.2008 um 23:15 Uhr
@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.....
... vorausgesetzt die beiden Telefonierer haben ihre Handys bei O2 und Vodafone und nix Pinkes...

Aber nich' weitererzählen bitte.

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

Fangen solche Bätche dann übrigens so an?
01.
@echo off & setlocal & color fd
Grüße
bastla
Bitte warten ..
Mitglied: Biber
18.04.2008 um 00:23 Uhr
@bastla

Wo denkst Du hin - hier hat jeder Rechner als Standard:
01.
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor 
02.
    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
Bitte warten ..
Mitglied: tegee08
18.04.2008 um 08:56 Uhr
Danke an euch Beide

das klappt wie verrückt

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
Bitte warten ..
Mitglied: Biber
18.04.2008 um 11:04 Uhr
Moin, tegee08,

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

01.
... 
02.
set "Ein=c:\test.txt" 
03.
set "AusDir=D:\Daten" 
04.
.... 
05.
.... 
06.
cscript //nologo "%Cvt%" 
07.
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
Bitte warten ..
Mitglied: tegee08
18.04.2008 um 13:38 Uhr
ja, danke für den Gedankenanstoß, das mit dem Original mache ich aus so

vielen dank für alles, hat mir sehr geholfen
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...