Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
Kommentar vom Moderator Biber am 03.02.2011 um 20:57:27 Uhr
Dieser Beitrag ist definitiv im falschen Bereich.
Aber in welchen meiner Lieblingsbereichesoll ich ihn denn nun verschieben?
GELÖST

Batch! Variable Zeile mit festem Anfang, Änderung nach dem Anfang von variabler zahl in neue zahl!

Frage Microsoft

Mitglied: bimbo625

bimbo625 (Level 1) - Jetzt verbinden

03.02.2011, aktualisiert 20:57 Uhr, 5181 Aufrufe, 17 Kommentare

Habe das Batch-Script fast fertig habe aber nur dieses Problem!

Hallo!

Habe schon viele Beiträge gelesen aber keine passende Antwort gefunden.

Daher nun meine Frage:

Wie kann ich eine Zeile die immer anders ist finden und den Inhalt nach dem immer gleichen Anfang von einer unbekannten in eine bestimmte Zahl ändern???

Am besten wären Beispiele!
Mit "account" als Anfang
und "zahl1" als unbekannte Zahl
und "zahl2" als bestimmte Zahl
und wenns nötig ist "zeile1" für die Zeile!

Wer Fehler findet darf sie behalten und Danke für alle Antworten!!!
Mitglied: 60730
03.02.2011 um 20:29 Uhr
moin,

Habe schon viele Beiträge gelesen aber keine passende Antwort gefunden.
Am besten wären Beispiele!

Wie kann ich eine Zeile die immer anders ist finden und den Inhalt nach dem immer gleichen Anfang von einer unbekannten in eine bestimmte Zahl ändern???
  • Durch suchen von allem bekannten und dann bleibt am Schluß nur noch das unbekannte übrig

Wer Fehler findet darf sie behalten und Danke für alle Antworten!!!
  • Deine Taste zwischen , und - ist defekt und deshalb nimmst du die geshiftete 1?

Sorry, aber du erwartest doch nicht ernsthaft, das man[n] auf so eine Frage! - eine Antwort aus dem Hut ziehen kann, Houdini ist es schon länger und Siegfried & Roy machen auch nicht mehr lange.

@ Frank Scholl - ich vermisse einen Kristallkugelbutton.
...und da waren Sie wieder, die Nicks mit den Zahlen, die mir bereiten diese qualen
Bitte warten ..
Mitglied: pieh-ejdsch
03.02.2011 um 20:30 Uhr
moin bimbo625,

das geht mit findstr zb bestimmte Zahl=3 bei zweistelligen ziffern
findstr "^account" "D:\Datei.txt"|findstr "[0-9]3"
wie ist das gemeint wenn nötig ist den Ausdruck zeile 1 finden? soll es gefunden werden wenn der Rest(Anfang) gefunden wurde?

[Edit] @ Timo das mit dem KristallKugelButton ist gut [/Edit]

Gruß Phil
Bitte warten ..
Mitglied: bimbo625
03.02.2011 um 20:47 Uhr
heyho,

also ich suche eine Möglichkeit in einer txt mit ca. 2000 Zeilen eine Zeile zu finden und diese zu Ersetzten durch die selbe Zeile nur eben mit einer anderen Zahl.
Also ich zeigs mal so:

Zeile X fester_Inhalt: X

X ist bei mir eine unbekannte Zahl!!!

Gruß Bimbo
Bitte warten ..
Mitglied: Skyemugen
03.02.2011 um 20:51 Uhr
Aloha bimbo ... Warum nennt man sich eigentlich freiwillig so? ...

Eine Zeile, die immer anders ist ... inwiefern spielt das mit „Zeile1“ zusammen?

Phil hat scheinbar eine Ahnung deines Wahnsinns aber ich reihe mich mal wieder in T-Mo's Schlange ein und warte am Kristallkugel-Schalter auf Kristallkugelnausgabe.

(Was ich damit sagen will? - Was willst du sagen? Eindeutig ist anders.)

greetz André

edit: Ah, er schrieb noch etwas, während ich geposted habe ... nun wird die Sache doch schon klarer, ich kann schon den Mond sehen.

edit an den TE Toll, dass dein Thread-Titel mit Batch! anfängt aber das war unnötig ;) dafür hätten wir hier den Batch! (und so 'n Zeugs) Bereich.

edit an T-Mo: Schreibt man Qualen nicht für gewöhnlich groß? :P

(extra-edit:
Dieser Beitrag ist definitiv im falschen Bereich.
Aber in welchen meiner Lieblingsbereichesoll ich ihn denn nun verschieben?
Tja, Biberchen, wer die Wahl hat ... willst du den Publikumsjoker einsetzen?) ;)
Bitte warten ..
Mitglied: pieh-ejdsch
03.02.2011 um 21:04 Uhr
naja die Ahnung war wohl doch ein kleines Stück daneben.

mit Zahl ist das so ein Ding mit dem Ersetzen. Ist die Zahl eine mehrstellige Ziffer oder eine einzelne Ziffer?
kommt in der Zeile nochmehr nach dieser Zahl?

wir haben hier noch so schöne QuellCodeFormatierungen

Gruß Phil
Bitte warten ..
Mitglied: Biber
03.02.2011 um 21:14 Uhr
Moin bimbo625,

willkommen im Forum.

Ich weiss nicht, was du nebenbei gemacht hast, während du deinen Erstbeitrag hier reingetackert hast...
...möglicherweise nebenbei ein bisschen in der Tagesschau den Krawallen in Kairo oder dem Zyklon downunder zugeschaut?

Jedenfalls hast du jetzt eine halbe Stunde nette Leute damit beschäftigt, diffuse Nebelschwaden wegzuwedeln und es könnte noch eine weitere halbe Stunde dauern, bis durch beharrliches Nachhaken endlich alles auf dem Tisch liegt.

Oder... ich bemühe mich ja immer, auch das Positive hervorzuheben.

Positiv finde ich, dass du ja nach eigenen Aussagen dein Batch-Suchen-und-Ersetzen-Skript eigentlich fertig hast bis auf eine einzige Funktionalität.
Okay, kleiner Wermutstropfen - die fehlende Funktionalität ist das Suchen. Ach ja, und das Ersetzen.

Positiv finde ich, dass du bereitwillig versuchst, die noch dubiosen Sachverhalte aufzuklären.
Andererseits - jetzt haben schon zwei bis drei Helferlein gefragt, ob sich die Diskrepanz zwischen "eine Zeile suchen und ändern"
und "und wenns nötig ist "zeile1" für die Zeile!" auflösen lässt.

Ich möchte nur zu bedenken geben, dass dieser Monat nur 28 Tage insgesamt hat.
Kann sein, dass dir in der kurzen Zeit niemand den Sonderpreis für die unverständlichste Frage des Monats streitig machen wird.

Grüße
Biber
Bitte warten ..
Mitglied: Pago159
03.02.2011 um 21:19 Uhr
Hi Bimbo,

  • ist der bekannte bereich eigentlich nur in dieser Zeile, die du verändern möchtest oder auch in Zeilen, welche nicht Verändert werden dürfen/sollen?

  • Könntest du vll zur vereinfachung mal ein Konkretes beispiel geben, was man auch wirklich erkennen kann?
      • Mehrere Zeilen, welche erkennbar machen, was du gerne machen würdest! (Selber Textblock zweimal, wobei der zweite die änderung beinhaltet.)

Desweiteren hast du noch über der Texteingabe in Formatierungshilfe welche
auch Struktur und Gliederung in die ganze sache bringt (wenn sie benutzt wird)
Für die zwei Beispiele könntest du zum Bleistift die Textblöcke nutzen.

Dies wäre vll mal ein anfang hier etwas Verständniss in die sache zu bringen.

Lg Grapper
Bitte warten ..
Mitglied: bimbo625
03.02.2011 um 21:31 Uhr
Heyho,

also die ganze Zeile ist einzigartig in dem Ordner und sieht wirklich nur so aus:
01.
 fester_inhalt: 594534
01.
also [leerzeichen]fester[unterstrich]inhalt[doppelpunkt][leerzeichen]594534
594534 als Beispiel (kann aber auch so 1 oder so 0 oder so 6563134 aussehen!)

und ich weiß wie ich es finde: ich suche nach dem festen_inhalt, aber wie kann ich es dann nach dem 2. [leerzeichen] von 594534 in z.b. 10 ändern???

im ganzen sieht das ca so aus:

01.
irgend 
02.
was 
03.
oder 
04.
 fester_inhalt: 594534 
05.
so 
06.
was
Bitte warten ..
Mitglied: Pago159
03.02.2011 um 21:34 Uhr
Gut, das ist ja jetzt schonmal ein bisschen besser erkennbar, sind denn nach den Zahlen noch weitere sachen da?
Sprich kann man einfach die ganze Zeile löschen und dann die neue Zeile einfügen?
Oder ist in der Zeile noch mehr zu beachten?

Ach ja, ich habe meinen Beitrag nochmal editiert, du könntest ihn dir ja nochmal durchlesen. ;)

/Edit

Übrigens würden auch Satzzeichen bei der Formatierun Helfen.

Edit/

Lg Grapper
Bitte warten ..
Mitglied: pieh-ejdsch
03.02.2011 um 22:11 Uhr
das könnte dann in etwa so gehen
01.
@echo off &setlocal disabledelayedexpansion 
02.
set "Input=D:\Adminhelp\test.txt" 
03.
set "Output=D:\Adminhelp\Ausgabe.txt" 
04.
set "Zahl=512" 
05.
 
06.
07.
echo @echo off ^& setlocal enabledelayedexpansion 
08.
echo echo.!Line! 
09.
echo endlocal 
10.
)>"%temp%\Line.cmd" 
11.
 
12.
13.
for /f "usebackq delims=" %%i in ("%Input%") do ( 
14.
	set "line=%%i" 
15.
	"%temp%\Line.cmd"|findstr /b /c:" account" >nul 2>nul&&( 
16.
		for /f "tokens=1* delims=1234567890" %%j in ("%%i") do echo.%%j%Zahl%%%k 
17.
	)||echo.%%i 
18.
19.
)>"%temp%\Temp" 
20.
move "%temp%\Temp" "%Output%"
[Edit] Output nachgezogen [/Edit]

Gruß Phil
Bitte warten ..
Mitglied: Skyemugen
03.02.2011 um 22:15 Uhr
Aloha Phil,

mach doch die Eingabe der Zahl als set /p, so kann er sich dann jedes Mal eine passende einfallen lassen (denn irgendwie scheint die mir nicht so wirklich festgelegt zu werden).

greetz André

edit: Sollte %ausgabe% nicht %output% sein? Und irgendwas haut da noch nicht hin, die Zahl taucht jetzt nirgendwo auf (im output). ^.^
Bitte warten ..
Mitglied: pieh-ejdsch
03.02.2011 um 22:20 Uhr
moin Sky, (heute schon das zweite mal)

ja das kann doch bimbo625 bestimmt schon selbst.

Gruß Phil
Bitte warten ..
Mitglied: bimbo625
03.02.2011 um 22:23 Uhr
Heyho @André,

die Zahl die nachher da stehen soll ist von mir festvorgegeben
und danke für die Lösung probiers gleich mal aus!!
Bitte warten ..
Mitglied: Skyemugen
03.02.2011 um 23:01 Uhr
Aloha,

ich versteh immer noch nicht, wo du wie jetzt account haben willst ...

bei mir funktioniert Phil's Skript nicht so wie es soll(te?), daher hab ich mich mal dran gesetzt und ein wenig anders es versucht (hatte davor auch schon anders angefangen)

01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Alt=E:\alt.txt" 
03.
set "Neu=E:\neu.txt" 
04.
set "fest= fester_inhalt: " 
05.
 
06.
for /f "tokens=3 delims= " %%i in ('findstr /n %fest% %Alt%') do ( 
07.
echo Zahl vorher: %%i 
08.
set Zahl=%%i 
09.
set Wert=10 
10.
11.
set Von=%fest%%Zahl% 
12.
set Nach=%fest%%Wert% 
13.
 
14.
set R=%temp%ReplaceInFile.vbs 
15.
>%R% echo Set fso=CreateObject("Scripting.FileSystemObject"):Set a=WScript.Arguments:T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2)) 
16.
 
17.
copy "%Alt%" "%Neu%">nul 
18.
cscript //nologo %R% "%Neu%" "%Von%" "%Nach%"
Wie gesagt: Das mit account ist mir noch schleierhaft, wie du das jetzt wohin haben willst.

greetz André ich geh erstmal schlafen; die vbs-Umsetzung hab ich mir bei bastla abgeguckt *g*

edit: doofes System hier, haut einfach mein Skript auseinander ...
Bitte warten ..
Mitglied: bastla
03.02.2011 um 23:48 Uhr
Hallo Skyemugen!

So viele Zeilen hab ich doch aber bestimmt nicht gebraucht - eher:
01.
@echo off & setlocal 
02.
set "Alt=E:\alt.txt" 
03.
set "Neu=E:\neu.txt" 
04.
set "fest=fester_inhalt: " 
05.
 
06.
for /f "tokens=3 delims= " %%i in ('findstr /n %fest% "%Alt%"') do ( 
07.
echo Zahl vorher: %%i 
08.
set Zahl=%%i 
09.
set Wert=10 
10.
11.
set "Von=%fest%%Zahl%" 
12.
set "Nach=%fest%%Wert%" 
13.
 
14.
set R=%temp%ReplaceInFile.vbs 
15.
>%R% echo Set fso=CreateObject("Scripting.FileSystemObject"):Set a=WScript.Arguments:T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2)) 
16.
 
17.
copy "%Alt%" "%Neu%">nul 
18.
cscript //nologo %R% "%Neu%" "%Von%" "%Nach%"
- und falls Ersetzen in der Datei (ohne Sicherungskopie) genügt:
01.
@echo off & setlocal 
02.
set "Datei=E:\alt.txt" 
03.
set "fest=fester_inhalt: " 
04.
 
05.
for /f "tokens=3 delims= " %%i in ('findstr /n %fest% "%Datei%"') do ( 
06.
echo Zahl vorher: %%i 
07.
set Zahl=%%i 
08.
set Wert=10 
09.
10.
set "Von=%fest%%Zahl%" 
11.
set "Nach=%fest%%Wert%" 
12.
 
13.
set R=%temp%ReplaceInFile.vbs 
14.
>%R% echo Set fso=CreateObject("Scripting.FileSystemObject"):Set a=WScript.Arguments:T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2)) 
15.
 
16.
cscript //nologo %R% "%Datei%" "%Von%" "%Nach%"
Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
04.02.2011 um 00:41 Uhr
moin,
ich versteh immer noch nicht, wo du wie jetzt account haben willst ...
steht doch ganz ganz oben...

daher macht der Batch schon das was er soll.
Demo am Promt:
>type test.txt 
 account & 7125387631487 & noch mehr 
andere Zeile 
 account 11111 rest 
 nochwas 22222 
>"\cmd befehle\VariLine" 
>type Ausgabe.txt 
 account & 512 & noch mehr 
andere Zeile 
 account 512 rest 
 nochwas 22222
eventuell hast Du kein Leerzeichen in die Suchzeichenfolge eingefügt

Gruß Phil
Bitte warten ..
Mitglied: Skyemugen
04.02.2011 um 08:20 Uhr
Aloha bastla,

ich mag das Forum manchmal nicht, es zerballert mir öfter das Skript (mehr Zeilen als ich eigentlich habe wie in diesem Fall ...)

@phil,

ja da steht das ganz oben, ich hab trotzdem nicht verstanden, wo genau er es haben wollte hätte er mal im Beispiel angeben sollen

jedenfalls hat dein Skript bei mir nicht funktioniert (nein, das Leerzeichen war da, sonst wäre meines nicht gelaufen ^.^ - war schon alles so, wie er es für das Ersetzen vorgab), denn bei mir waren input und output identisch

aber vielleicht war es auch einfach schon zu spät für Windows 7 *g*

egal, manchmal ist seltsam

greetz André
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Variable setzten mit Leerzeichen (3)

Frage von Marlon1 zum Thema Batch & Shell ...

Batch & Shell
Batch: Variable Expansion in einer FOR-Schleife (9)

Frage von .Sessl zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (23)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...