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

Spalten in einer Textdatei verschieben

Frage Entwicklung Batch & Shell

Mitglied: RichardB

RichardB (Level 1) - Jetzt verbinden

13.11.2008, aktualisiert 17.11.2008, 3615 Aufrufe, 11 Kommentare

Hallo Forum,

ich habe lange gesucht und "herumexperimentiert"...leider hat es nicht geklappt.
Ich habe folgendes vor:
Eine Textdatei die wie folgt aufgebaut ist soll umgestellt werden in eine neue Datei.
Dabei darf die Stellenanzahl (also der Aufbau) nicht verändert werden.
Es soll also der Text ab der Stelle 74-87 ausgeschnitten und an Stelle 15 eingefügt werden.

Die Punkte sollen die Blanks darstellen (irgendwie schaut der fertige Thread anders aus als in der Entwurfsmaske???). Die Stellenzahl jeder Zeile ist gleich.
Ich hoffe ich konnte einigermassen rüberbringen was ich machen möcht...hier noch ein Beispiel...


Original

STRF-COMP020...C960000-0000..................00000044567......KAPPN.....Marinath.....
SWIP-127259.....C3320226-02...................00000034567......SCHEE.....Ersatz Glass.
SWIP-125424.....C3322400-01...................00000014567......SCHEE..................
SWIP-125424.....C340349.......................00000024567......SCHEE..................

usw.

Gewünschtes Ergebniss

STRF-COMP-020.Marinath.......C960000-0000..................00000044567......KAPPN.....
SWIP-127259...Ersatz Glass...C3320226-02...................00000034567......SCHEE.....
SWIP-125424..................C3322400-01...................00000014567......SCHEE.....

usw...

wie lässt sich oder lässt sich soetwas überhaupt per Batch lösen???

Gruss und DANKE

Richard
Mitglied: D3S3RT
13.11.2008 um 22:14 Uhr
ganz billig für einmalig machen würd mir jetzt einfallen:

pack das in excel rein und sag, Text in Spalten, da kannste mit den Strichen die Bereiche angeben. Dann die Spalten umsortieren per Drag&Drop. und dann speichern als Txt. Das müsste zumindestens funktionieren.
Bitte warten ..
Mitglied: bastla
13.11.2008 um 22:23 Uhr
... und falls Du es doch öfter brauchen solltest, dann etwa so:
01.
@echo off & setlocal 
02.
set "Ein=D:\Original.txt" 
03.
set "Aus=D:\Ergebnis.txt" 
04.
 
05.
if exist "%Aus%" del "%Aus%" 
06.
for /f "usebackq delims=" %%i in ("%Ein%") do set "Zeile=%%i" & call :ProcessLine 
07.
goto :eof 
08.
 
09.
:ProcessLine 
10.
>> "%Aus%" echo %Zeile:~,14%%Zeile:~73,14%%Zeile:~14,59%%Zeile:~87%
Grüße
bastla
Bitte warten ..
Mitglied: RichardB
16.11.2008 um 20:13 Uhr
Klasse...das ganze kommt dem was ich vorhabe schon sehr nahe! Danke Bastla

Leider habe ich in der ersten Zeile eine unerwünschte "Verschiebung".

Ich habe mir mit echo %Zeile" den Inhalt der Variable Zeile ausgeben lassen. Dabei habe ich festgestellt dass vor dem eigentlichen Text zwei Sonderzeichen ("90 Grad Winkel einfach und doppelt") ausgegeben werden?? Keine Ahnung wo die herkommen in der Original Datei sind Sie jedenfalls nicht?
Dadurch verschiebt sich eben die Ausgabe um zwei stellen (die "20").

Gruss
Richard
Bitte warten ..
Mitglied: bastla
16.11.2008 um 20:24 Uhr
Hallo RichardB!

Eine Anpassung der Zeile 10 sollte das ja "abfangen" können, etwa:
>> "%Aus%" echo %Zeile:~2,14%%Zeile:~75,14%%Zeile:~16,59%%Zeile:~89%
Zur Bildung von "Substrings" (kannst Du auch unter "set /?" nachlesen) ist zunächst die Anzahl der "zu überspringenden" Zeichen und danach die Anzahl der zu verwendenden Zeichen anzugeben - mit
%Zeile:~2,14%
werden demnach die ersten beiden Zeichen übersprungen und die folgenden 14 Zeichen verwendet. Wenn der zweite Wert nicht angegeben wird, bedeutet dies: "nimm alle restlichen Zeichen bis zum Ende".

Grüße
bastla
Bitte warten ..
Mitglied: RichardB
16.11.2008 um 20:40 Uhr
hmmm...diese "Sonderzeichen sind ja nur in der ersten
Zeile...und wenn ich das ganze so durchlaufen lasse dann erhalte ich vor der ersten Zeile im Ergebniss ein umgedrehtes Fragezeichen...

...noch ne Idee??

Gruss
Richard
Bitte warten ..
Mitglied: RichardB
16.11.2008 um 21:09 Uhr
...gearde ist mir noch aufgefallen dass es wohl mit Umlauten auch zu Problemen (Verschiebungen) kommt.

Kann/Muss man evtl. einen Zeichensatz festlegen???
Bitte warten ..
Mitglied: bastla
16.11.2008 um 21:22 Uhr
Hallo RichardB!

Na gut, dann setzen wir vorübergehend die Codepage auf 1252 und erteilen der 1. Zeile eine Sonderbehandlung (wobei Du die Positionen eben so anpassen musst, dass die richtigen Zeichen ausgegeben werden - "blind" kann ich das leider nicht):
01.
@echo off & setlocal 
02.
set "Ein=D:\Original.txt" 
03.
set "Aus=D:\Ergebnis.txt" 
04.
 
05.
for /f "tokens=3 delims=:. " %%i in ('chcp') do set "CP=%%i" 
06.
chcp 1252>nul 
07.
 
08.
set /p Zeile=<"%Aus%" 
09.
> "%Aus%" echo %Zeile:~2,14%%Zeile:~75,14%%Zeile:~16,59%%Zeile:~89% 
10.
 
11.
for /f "usebackq skip=1 delims=" %%i in ("%Ein%") do set "Zeile=%%i" & call :ProcessLine 
12.
chcp %CP%>nul 
13.
goto :eof 
14.
 
15.
:ProcessLine 
16.
>> "%Aus%" echo %Zeile:~,14%%Zeile:~73,14%%Zeile:~14,59%%Zeile:~87%
Grüße
bastla
Bitte warten ..
Mitglied: RichardB
16.11.2008 um 21:53 Uhr
Hallo bastla,

danke erstmal für die Mühe!

Inzischen habe ich etwas rumprobiert...wenn ich die Originaldatei in ANSI umwandle (original ist UTF-8)dann klappt es...

Jetzt muss ich nur noch rausfinden wie das ganze per Batch geht...

Echt klasse
Gruss
Richard
Bitte warten ..
Mitglied: bastla
16.11.2008 um 21:57 Uhr
Hallo RichardB!

Du könntest folgendes versuchen:
type UTF-8-Datei.txt>ASCII-Datei.txt
Grüße
bastla
Bitte warten ..
Mitglied: RichardB
17.11.2008 um 00:07 Uhr
...das klappt!

Nur jetzt habe ich das nächste Problem...
Das Programm mit dem ich die veränderte Datei einlese erwartet nach der Konvertierung ANSI-Codierung...
Ich werd Wahnsinnig. Es will mir nicht gelinegn die Datei in ANSI auszugeben...auch Tante Google gibt da nix brauchbares her...

Danke für Deine Hilfe, bastla!

Gruss
Richard
Bitte warten ..
Mitglied: bastla
17.11.2008 um 07:50 Uhr
Hallo RichardB!

Du könntest noch die Kombination
01.
@echo off & setlocal 
02.
for /f "tokens=3 delims=:. " %%i in ('chcp') do set "CP=%%i" 
03.
chcp 1252>nul 
04.
 
05.
type UTF-8-Datei.txt>ASCII-Datei.txt 
06.
set "Ein=ASCII-Datei.txt" 
07.
 
08.
... 
09.
 
10.
chcp %CP%>nul  
11.
goto :eof
versuchen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Spalte einer Textdatei mit einer anderen Zahl überschreiben
Frage von THRILLERBatch & Shell2 Kommentare

Hallo zusammen, ich habe eine Textdatei mit den Namen "Info1.txt, Info2.txt, Info100.txt". Dabei hat jede Textdatei pro Zeile 3 ...

Windows 8
Ordner verschieben mit Hilfe einer Textdatei
Frage von SluggerWindows 88 Kommentare

Hallo, ich habe folgendes Problem. In einer *.txt habe ich Ordner aufgelistet die von "y:\quellordner" nach "x:\Zielordner" verschoben werden ...

Microsoft Office
Excel Zellen aus zwei Spalten in separate Textdatei exportieren
gelöst Frage von Noah15Microsoft Office5 Kommentare

Hallo, es geht um folgendes Problem: Ich habe eine Excel-Tabelle mit knapp 200 Zeilen. Aus der ersten Zeile soll ...

Basic
Zwei Spalten vergleichen und wenn nicht gleich dann nach unten verschieben
gelöst Frage von Rabbit81Basic4 Kommentare

Hallo, ich habe hier schon viele gute Infos im Forum gefunden, aber zu meinem Anliegen finde keine passende Lösung. ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 17 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 22 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 22 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
gelöst Frage von prodriveNetzwerkmanagement12 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...