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

Frage Entwicklung Batch & Shell

GELÖST

Hochzählen einer Variable und Anhängen an eine zuvor zu bestimmende Anzahl von Zeilen in einer Textdatei

Mitglied: dergandralf

dergandralf (Level 1) - Jetzt verbinden

08.10.2009 um 21:46 Uhr, 9572 Aufrufe, 6 Kommentare

Hallo liebes Forum!

Ich bin nun schon einige Tage und Wochen auf der Suche nach der optimalen Lösung für mein (lächerliches) Problem und kann weder mit Google noch mit der Forumssuche etwas passendes finden:

Was meine Batch (entweder als Schleife oder wenn das nicht gehen sollte als Einzelaufrufe) tun soll ist folgendes:

1. aus einer bestehenden Textdatei Strings mit einer festen Länge von 36 Zeichen auslesen und deren Anzahl feststellen
diese sind zeilenweise angeordnet also etwa so:

S-ID-7576576586758675867
S-ID-7576576586758675868
S-ID-7576576586758675869
S-ID-7576576586758675870
usw.usw.

2. anschließend Durchnummerieren (oder auch hochzählen) und Anhängen mit einem Wort und einem "=" davor also quasi folgendermaßen:

computer1=S-ID-7576576586758675867
computer2=S-ID-7576576586758675868
computer3=S-ID-7576576586758675869
computer4=S-ID-7576576586758675870
usw.usw.

3. dieses Stringkuddelmuddel wieder zeilenweise in eine andere Textdatei schreiben (genauso wie in Schritt 2 also)

Meine erbärmlichen Versuche trau ich mich gar nicht herzeigen... hab es mit einer (einzigen) FOR-Schleife versucht, weil ich kein Plan hab, wie ich die Zeilen einzeln nacheinander ansprechen kann also ohne FOR-Schleife, was dann wohl die Holzhackermethode wäre...

Auch wie ich einer FOR-Schleife sagen kann, dass sie ihren Output jeweils in eine neue Textdatei schreiben soll (also pro textdatei nur ein string der dann für mich als Batchnoob leichter auszulesen wäre) ist mir völlig schleierhaft
Ist (nur so ne Idee) aber wahrscheinlich auch nicht zielführend, weils das selbe problem ist nur halt pferd-von-hinten-aufgesattelt

Kann man evtl. zu diesem Zweck einfach mehrere FOR-Schleifen aneinanderhängen um alles in einem Schritt zu erledigen? Oder geht das gar nicht mit Batch zu lösen?

Auf eure Hilfe hofft inständig
dergandralf

Greetz @all
Mitglied: bastla
08.10.2009 um 22:28 Uhr
Hallo dergandralf und willkommen im Forum!

Wenn die erste Textdatei tatsächlich nur zeilenweise die "S-ID-..."-Einträge enthalten sollte, könnte (direkt von der Kommandozeile, im Batch jeweils mit %%i bzw %%j geschrieben) das so gehen:
for /f "tokens=1* delims=:" %i in ('findstr /n "^" "Ein.txt"') do >>"Aus.txt" echo computer%i=%j
Falls außer den "S-ID-..."-Zeilen noch andere Zeilen in der "Ein.txt" stünden, dann etwa so (als Batch):
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Ein=D:\Ein.txt" 
03.
set "Aus=D:\Aus.txt" 
04.
 
05.
set /a Nr=1 
06.
if exist "%Aus%" del "%Aus%" 
07.
for /f "delims=" %%i in ('findstr /b "S-ID-" "%Ein%"') do ( 
08.
    >>"%Aus%" echo computer!Nr!=%%i 
09.
    set /a Nr+=1 
10.
)
Grüße
bastla
Bitte warten ..
Mitglied: Arano
08.10.2009 um 22:29 Uhr
Hallo Dergandalf

Edit: Start
Guck mal lieber was Bastla da geschrieben hat, das wird viel wahrscheinlicher funktionieren als meins... obwohl, schon recht ähnlich
Edit: Ende

...Lösung für mein (lächerliches) Problem...
Scheint ja, zumindest für dich, nicht so lächerlich zu sein ;)

Also ich habe selber kaum Erfahrung mit Batch und sitze zudem an meiner Linuxbox - also nix mit Batch.
Trotzdem möchte ich versuchen dir zu helfen, auch wenn ich meinen Vorschlag nicht testen kann (und es evtl. auch einfacher geht). Wie dem auch sei, solange kein anderer zur Hilfe eilt, versuch doch mal folgendes:
@echo off & setlocal EnableDelayedExpansion  
 
set counter=1 
for /f %%i in (c:\text.txt) do ( 
    echo Computer%counter%=%%i 
    set /A counter=!counter!+1 
)
Das sollte dir bei der Ausführung der Batch Zeilen wie du sie in der neuen Datei haben möchtest auf die Ausgabe zaubern (erstmal).
Wenn es das sogar tut, dann tausche die Zeile 5 mit dier aus:
echo Computer%counter%=%%i >>neueText.txt
Die Ausgabe des "echo's" wird dann in die genannte Datei umgeleitet und immer ans Ende angehangen.

So, jetzt heisst es Daumendrücken und hoffen das es funktioniert - oder schnell wer anderes kommt.


Schönen Gruß
~Arano
Bitte warten ..
Mitglied: dergandralf
08.10.2009 um 22:57 Uhr
Vielen Dank Ihr beiden! Hat (bis auf kleine "normale" Schönheitsfehler) quasi sofort geklappt! Vor allem das mit dem "^" hätt ich wahrscheinlich so nie ohne euch bzw. dich bastla nie rausgefunden...

ENDLICH DIE LÖSUNG! YES! THX A LOT! IHR SEID DIE GRÖßTEN! GEPRIESEN SEI DER HERR!

Jetzt kann ich endlich mein Projekt beenden, das war der fehlende Zwischenschritt, strike!

P.S.: Sorry CAPS-LOCK hat wohl geklemmt
Bitte warten ..
Mitglied: dergandralf
09.10.2009 um 01:15 Uhr
Sorry das ich jetzt den Thread nochmal aufwärmen muss...

OOps. Reihenfolge zerstört. Server abgeraucht. Unten kommt die Frage.
Bitte warten ..
Mitglied: dergandralf
09.10.2009 um 01:22 Uhr
Habs nun endlich soweit, dass ich folgende Ausgabe bekomme:

computer1:S-ID-7576576586758675867
computer2:S-ID-7576576586758675868
computer3:S-ID-7576576586758675869
computer4:S-ID-7576576586758675870

Vielen herzlichen Dank nochmals! Hab sogar schon überlegt ob ich mich nicht durch eine kleine Spende bei euch bedanken kann sobald mein Programm irgendwann mal richtig Nutzen produziert

Jetzt hab ich bloß ein klitzeklitzekleines Problemeleinchen mit dem ERSTEN Doppelpunkt statt dem "="-Zeichen zwischen den Computern und Ihren S-IDs. Muss ich also nochmal komplett durch den Wolf drehen die Ausgabe oder?

Jetzt sagt ihr: google oder forumssuche
AAber: Hab ich schon Ehrlich.
Da ich keinen ünnötigen neuen Thread aufmachen möchte frag ich jetzt also prompt ganz plöd an tie Purchen:
Wie kann man im obigen text dann noch den ERSTEN Doppelpunkt (nicht alle Doppelpunkte) jeder Zeile noch durch ein "=" ersetzen?
Der ERSTE weil nach den S-IDs noch irgendwann Doppelpunkte kommen (quasi Portnummerngedöns etc )
Bitte warten ..
Mitglied: bastla
09.10.2009 um 07:29 Uhr
Hallo dergandralf!
Wie kann man im obigen text dann noch den ERSTEN Doppelpunkt (nicht alle Doppelpunkte) jeder Zeile noch durch ein "=" ersetzen?
Indem Du einen meiner beiden Vorschläge oben umsetzt (dann gibt's den ersten Doppelpunkt gleich gar nicht) ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Jede Zeile einer Textdatei in eigene Variable speichern
Frage von tomaschkuBatch & Shell4 Kommentare

Hallo erstmal, Da ich keine passende Antwort auf meine Frage gefunden habe, will ich es hier versuchen. Als Beispiel: ...

Batch & Shell
Mehrere Zeilen aus einer Anzahl von Textdateien per Batch entfernen
gelöst Frage von lukeskywalker501Batch & Shell4 Kommentare

Hi Leute, erst mal ein dickes moin an euch ! Ich habe folgende Sache und hoffe das ihr mir ...

Batch & Shell
Textdatei Zeile für Zeile auslesen
Frage von RIPUEDBatch & Shell

Hallo, ich würde gerne mit einem Batch-Skript Zeilen aus einer Textdatei einzeln und nacheinander auslesen und diese dann nach ...

Batch & Shell
In mehrzeiliger Textdatei verschiedene Zeilen auslesen und in Variablen aufsplitten
gelöst Frage von Boory01Batch & Shell6 Kommentare

Hallo Forum, ich möchte per Batch Datenreihen aus einer Textdatei verwerten. Hintergrund: Es sollen IP-Einträge gesetzt werden, die für ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 18 StundenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit25 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

Windows 10
Automatische daten kopieren, USB zu USB unter Win10 im Hintergrund
Frage von DerEisigeWindows 1016 Kommentare

Hallo Leute, ich bin auf der Suche nach einem Skript, dass von einem USB Stick automatisch nach dem einstecken ...