Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Frage Entwicklung Batch & Shell

Mitglied: xtbodx

xtbodx (Level 1) - Jetzt verbinden

29.10.2010 um 19:19 Uhr, 3463 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
JavaScript
Javascript rechnen mir sehr sehr großen Zahlen (3)

Frage von it4baer zum Thema JavaScript ...

Batch & Shell
gelöst EQU - GLEICH - BATCH (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Windows Userverwaltung
Gleiches Benutzerprofil für alle Domain-User auf einem Rechner (5)

Frage von Micky65 zum Thema Windows Userverwaltung ...

Microsoft Office
Text in Zahlen umwandeln

Tipp von logische zum Thema Microsoft Office ...

Neue Wissensbeiträge
Vmware

Heise Newsticker: Betrifft die Desktopprodukte von VMware

Information von Penny.Cilin zum Thema Vmware ...

Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Freigabe aus anderem Netz nicht erreichbar (44)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (24)

Frage von ahstax zum Thema Visual Studio ...

Windows Netzwerk
Netzwerk Neustrukturierung (15)

Frage von IT-Dreamer zum Thema Windows Netzwerk ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen (14)

Frage von Akcent zum Thema Windows 10 ...