Top-Themen

Aktuelle Themen (A bis Z)

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, bestimmte Stellen in einer Zeile entfernen

Mitglied: user90

user90 (Level 1) - Jetzt verbinden

03.02.2010, aktualisiert 10:00 Uhr, 5855 Aufrufe, 10 Kommentare

Hallo,

ich hab auf dem Rechner eine Textdatei, dessen Inhalt so ähnlich aussieht:

Spalte1:                       Spalte2:                            Spalte3:

blabla                           374                                    563
blabla                           639                                    456
blablub                         345                                    dfga

Ich will die Spalte2 und Spalte3 und alles was darunter steht entfernen, nur per Hand würde es
sehr lange dauern, da die Datei ziemlich groß ist.

Hier im Forum fand ich dann jemand, der so ein ähnliches Problem hatte, nur der wollte Spalte1 und
alles was darunter liegt entfernen.

https://www.administrator.de/index.php?content=132280

Weiß jemand wie man das mit Bat oder VBS macht?
danke
Mitglied: DrAlcome
03.02.2010 um 09:52 Uhr
Geht bestimmt per Batch-Datei, aber ich würde es einfach in Excel importieren und die entsprechenden Spalten raus hauen. Dann wieder als TXT exportieren.
Ohne Batch-Vorkenntnisse geht die Excel-Variante schneller
Bitte warten ..
Mitglied: bastla
03.02.2010 um 10:04 Uhr
Hallo user90!

Gibt es ein Trennzeichen zwischen den Spalten oder eine feste Spaltenbreite?

@DrAlcome
Soferne es sich um eine einmalige Aktion handelt und daher Automatisierung kein Thema ist, hast Du völlig Recht ...

Grüße
bastla
Bitte warten ..
Mitglied: user90
03.02.2010 um 10:05 Uhr
Nein, mit Excel geht es leider nicht, da alle Spalten in einer Zelle gezeigt werden.
Bitte warten ..
Mitglied: user90
03.02.2010 um 10:08 Uhr
hi bastla,

die Txt-Datei sieht wie oben aus, in jeder Zeile ist eine feste Spaltenbreite

Edit:// ich hab die ganze Zeit die TXT-Datei per Drag&Drop in Excel rüber kopiert, hat nicht geklappt.
hab dann über Datei Öffnen - Feste Breite ausprobiert, jetzt geht es, danke euch beiden.

Mich interessiert´s dennoch, wie es mit Bat oder VBS geht.
Bitte warten ..
Mitglied: bastla
03.02.2010 um 10:11 Uhr
Hallo user90!

Dann kannst Du die Datei in Excel öffnen und "Feste Breite" wählen ...

... bzw folgenden Batch verwenden:
01.
@echo off & setlocal
02.
set "Ein=D:\Import.txt"
03.
set "Aus=D:\Spalte1.txt"
04.

05.
del "%Aus%" 2>nul
06.
for /f "usebackq delims=" %%i in ("%Ein%") do set "Zeile=%%i" & call :ProcessLine
07.
goto :eof
08.

09.
:ProcessLine
10.
>>"%Aus%" echo %Zeile:~,33%
11.
goto :eof
Probleme könnte es mit dem Batch geben, wenn in der ersten Spalte bestimmte Sonderzeichen (<|>&) enthalten sind.

Grüße
bastla
Bitte warten ..
Mitglied: user90
03.02.2010 um 10:30 Uhr
Ich hab soeben den BatchScript ausgeführt.
Folgendes steht dann in Spalte1.txt:

Spalte1:                         S
blabla                             3
blabla                             6
blablub                           3

hat leider nicht geklappt, aber ich geb mich mit der Excel-Variante zufrieden.
thx
Bitte warten ..
Mitglied: DrAlcome
03.02.2010 um 10:35 Uhr
Sehr fein das es geklappt hat!
Batch ist zwar cooler, aber für ne einmalige Aktion passt Excel da gut!
Bitte warten ..
Mitglied: bastla
03.02.2010 um 11:43 Uhr
Hallo user90!

Scheitert aber eigentlich nur daran, dass ein Zeichen zuviel verwendet wird (ich hatte mich an Deinem Beispiel oben orientiert - wobei in den ersten beiden Zeilen 33 und in der dritten Zeile nur 32 Zeichen für die Spalte1 aufscheinen - und zur Sicherheit den größeren Wert genommen) - lässt sich aber leicht durch Änmderung des Wertes in der Zeile 10 anpassen.

Aber, wie gesagt, wenn Du das ohnehin nicht öfters brauchst ...

Grüße
bastla

P.S.: Bei Verwendung von Code-Formatierung wäre Dir die unterschiedliche Zeichenanzahl auch aufgefallen ...
Bitte warten ..
Mitglied: user90
03.02.2010 um 19:05 Uhr
Ich hab soeben noch mal mit der Wert in der 10. Zeile rumgespielt, und es geschafft, dass
nur die Spalte1 und alles was darunter steht in Spalte1.txt gespeichert wird.
danke, vllt. werd ich es noch öfters brauchen

Edit://

Zitat von bastla:
Hallo user90!
> vllt. werd ich es noch öfters brauchen
Na, dann lege ich noch die VBS-Variante drauf :
<code>EinDatei = "D:\Import.txt"
AusDatei = "D:\Spalte1.txt"
Spaltenbreite = 32

Set fso = CreateObject("Scripting.FileSystemObject")
Set Aus = fso.CreateTextFile(AusDatei)

For Each Zeile In Split(fso.OpenTextFile(EinDatei).ReadAll, vbCrLf)
Aus.WriteLine RTrim(Left(Zeile, Spaltenbreite))
Next
Aus.Close

Wow, das klappt auch noch, man muss nur mit dem Wert der Spaltenbreite "experimentieren".
Hab jetzt dank euch beiden drei Varianten. Respect all batch/vbsprofis
Bitte warten ..
Mitglied: bastla
03.02.2010 um 19:19 Uhr
Hallo user90!
vllt. werd ich es noch öfters brauchen
Na, dann lege ich noch die VBS-Variante drauf :
01.
EinDatei = "D:\Import.txt"
02.
AusDatei = "D:\Spalte1.txt"
03.
Spaltenbreite = 32
04.

05.
Set fso = CreateObject("Scripting.FileSystemObject")
06.
Set Aus = fso.CreateTextFile(AusDatei)
07.

08.
For Each Zeile In Split(fso.OpenTextFile(EinDatei).ReadAll, vbCrLf)
09.
    Aus.WriteLine RTrim(Left(Zeile, Spaltenbreite))
10.
Next
11.
Aus.Close
Diese Version hat sogar einen kleinen Zusatznutzen: Die Leerzeichen am Ende der einzelnen Felder werden entfernt ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Word bestimmt Sprache selbst
gelöst Frage von honeybeeMicrosoft Office1 Kommentar

Hallo, habe in Word 2016 ein nerviges Problem: Auf meinem Computer (Windows 10) sind zwei Sprachen installiert: Deutsch und ...

Outlook & Mail

EMails werden nach 3 Monaten entfern - Einstellung

Frage von staybbOutlook & Mail5 Kommentare

Hallo, ich habe bei einem Postfach das Problem, dass in Outlook alle Mails älter wie 3 Jahre verscheinden und ...

Mac OS X

Safari öffnet bestimmt Seite nicht

Frage von tomi93Mac OS X2 Kommentare

Hallo , ich habe an einem iMac bei uns im Unternehmen das Problem das Safari dort eine bestimmte Seite ...

Microsoft

Über VPN nur bestimmt große Daten übertragen

gelöst Frage von Peter007Microsoft5 Kommentare

Hallo zusammen, gibt es eine Möglichkeit bei Außendienstmitarbeitern die über VPN angebunden sind, die übertragbare Datenmenge zum Fileserver über ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 1 TagDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 1 TagSicherheit1 Kommentar

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 2 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 3 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
Microsoft Office
Sharepoint 2016 mag keine Umlaute in .docx-Titeln
gelöst Frage von DerWoWussteMicrosoft Office14 Kommentare

Moin Kollegen. Nutzt hier jemand Sharepoint? Könnt Ihr, unabhängig von der Sharepointversion, bitte einen Test machen? Ladet ein .docx ...

Basic
VBS soll alle Ordner auswählen, die im Startmenu angezeigt werden
Frage von Senseless-CreatureBasic12 Kommentare

Guten Morgen - gibt es eine Möglichkeit, per VBS das Startmenu in Win10 zu modifizieren? Ich beherrsche VBS mittlerweile ...

Video & Streaming
GO PRO 7 Black 4K 60 FPS MP4 HEVC(H.265) Codier Probleme
gelöst Frage von REN0XXVideo & Streaming10 Kommentare

Mahlzeit, ich habe mir Letztens Die GoPro Hero Black 7 gekauft, da diese nun auch 4K und 60FPS unterstützt ...

Virtualisierung
Physikalischen Linux-Rechner (Debian) in VM umziehen
Frage von fbronkoVirtualisierung10 Kommentare

Moin, ich möchte zu Testzwecken einen physikalisch vorhandenen Linux-Rechner auf Debian-Basis in eine VM umziehen. Ich habe mittlerweile schon ...