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 Zahl hinter immer gleichem Wort plus 1 rechnen (linear wachsend) - per Batch

Mitglied: xtbodx

xtbodx (Level 1) - Jetzt verbinden

29.10.2010 um 19:19 Uhr, 3472 Aufrufe, 2 Kommentare

Noch eine Frage ;)

Habe eine .txt in der viele Zahlen und Buchstaben in jeder Zeile stehen, jedoch steht in jeder 5. Zeile (ab der 2. Zeile also in Zeile 2, 7, 12, 17 u.s.w.) immer das gleiche Wort (CONTENT) gefolgt von einem Gleichheitszeichen und einer immer gleichen Zahl (=X). Jetzt möchte ich, dass immer X also die Zahl plus eins gerechnet wird, jedoch linear wachsend, damit danach nicht wieder überall die gleiche Zahl steht sondern sich diese immer um eins erhöht. Ich denke durch das Beispiel wird es verständlich ;)

Eingabe.txt
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern

Ausgabe.txt
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=105
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=106
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=107
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=108
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
Mitglied: bastla
29.10.2010 um 22:56 Uhr
Hallo xtbodx!

Soferne der Startwert bekannt und die Stellenanzahl der hochzuzählenden Nummer immer 3 ist könnte das so gehen:
01.
@echo off & setlocal 
02.
set "Ein=D:\Eingabe.txt" 
03.
set "Aus=D:\Ausgabe.txt" 
04.
set "Kenn=CONTENT=104" 
05.
set /a Nr=104 
06.
 
07.
del "%Aus%" 2>nul 
08.
for /f "usebackq delims=" %%i in ("%Ein%") do set "Zeile=%%i" & call :ProcessLine 
09.
goto :eof 
10.
 
11.
:ProcessLine 
12.
echo %Zeile%|findstr /e "%Kenn%">nul||(>>"%Aus%" echo %Zeile% & goto :eof) 
13.
>>"%Aus%" echo %Zeile:~,-3%%Nr% 
14.
set /a Nr+=1 
15.
goto :eof
Anmerkung: Aus Gründen der Genauigkeit wird immer das Zeilenende untersucht (es darf daher auf "CONTENT=104" zB kein Leerzeichen mehr folgen), da ja die letzten 3 Zeichen ersetzt werden sollen. Auch wird bei der Überprüfung auf denn Kennzeichen-String Groß-/Kleinschreibung beachtet - wenn das nicht gewünscht sein sollte, müsste "findstr" zusätzlich den Schalter "/i" erhalten ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
29.10.2010 um 23:16 Uhr
Hallo xtbodx und bastla.

Ein anderer Ansatz wäre, die Abfolge als Grundlage zu nehmen. 6. Token (mit "=" als Delimiter) in der 2. Zeile ist die Startnummer, Jede 5. Zeile ab der 2. wird verändert.

01.
@echo off &setlocal 
02.
>"Ausgabe.txt" type nul 
03.
for /f "tokens=1* delims=:" %%a in ('findstr /n . "Eingabe.txt"') do ( 
04.
  set /a n=%%a-2 
05.
  set "line=%%b" 
06.
  call :procLine 
07.
08.
pause 
09.
goto :eof 
10.
 
11.
:procLine 
12.
setlocal enabledelayedexpansion 
13.
if "%n%"=="0" ( 
14.
  for /f "tokens=6 delims==" %%a in ("!line!") do set /a X=%%a-1 
15.
16.
set /a n%%=5 
17.
if "%n%"=="0" ( 
18.
  for /f "tokens=1-5 delims==" %%a in ("!line!") do ( 
19.
    set /a X+=1 
20.
    set "line=%%a=%%b=%%c=%%d=%%e=!X!" 
21.
22.
23.
>>"Ausgabe.txt" echo\!line! 
24.
endlocal &set "X=%X%" 
25.
goto :eof 
26.
 
Grüße
rubberman
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
In Batch Zählen
gelöst Frage von mavericklpBatch & Shell2 Kommentare

Guten Morgen zusammen, Ich habe ein kleines Problem mit einer Zählschleifer in der Batch Datei. Und zwar werden die ...

Batch & Shell

Batch: Wenn Buchstaben im Wort enthalten dann......

gelöst Frage von Luckyman7471Batch & Shell7 Kommentare

Hallo Leute, Ich würde gerne folgendes realisieren: Wenn im lokalen Computernamen die Buchstaben "fa" enthalten sind dann soll ein ...

JavaScript

Javascript rechnen mir sehr sehr großen Zahlen

Frage von it4baerJavaScript3 Kommentare

Hallo, ist es möglich in Javascript mit extrem großen Zahlen zu rechnen . z.B. 783^98 bekannterweise werden ja normale ...

Batch & Shell

Zahlen in Batch addieren...

gelöst Frage von Hans87Batch & Shell2 Kommentare

Hallo, ich habe ein batch skript geschrieben, das zwei SQL Abfragen ausführt. Beide geben Werte zurück. Die zurückgegebenen Werte ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 2 TagenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 3 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Router & Routing
Router auf Orginal Firmware zurück flashen mit Tftpd
Frage von ILeonardRouter & Routing21 Kommentare

Hallo, Ich habe zwei Router, einmal TP-Link 841n v11 und TP-Link 940N v5. Ich wollte fragen, ob jemand mir ...

Router & Routing
WRT keine Verbindung zum Web Interface
gelöst Frage von ILeonardRouter & Routing18 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

TK-Netze & Geräte
Telefonie zweier Fritzboxen mit je eigenem DSL Anschluss verbinden
Frage von hannsgmaulwurfTK-Netze & Geräte10 Kommentare

Hallo zusammen, ich habe hier einen Haushalt mit zwei Anschlüssen. Einmal ISDN, einmal DSL. An jedem Anschluss hängt eine ...