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

aktuelle IP an bestimmte Stelle in INI-Datei schreiben

Mitglied: Kn0cki17

Kn0cki17 (Level 1) - Jetzt verbinden

26.11.2007, aktualisiert 28.11.2007, 4622 Aufrufe, 17 Kommentare

Hallo,

folgendes würde ich gern machen.

Ich möchte die IP des jeweiligen Rechners auslesen und dann einen bestimmten Sting in einer .ini Datei durch diese IP ersetzen.

Die IP auslesen funktioniert schon.

@for /F "tokens=13,*" %i in ('ipconfig^|find "IP-Ad"') do (
@echo %i >>c:\test3.txt
)

allerding weiß ich nicht, wie ich in der .ini Datei einen bestimmten Wert durch diese IP ersetzen kann.

Beispielstring wäre:

serverpath=abcdse1,xxx.xxx.xx.xx,9521/*

xxx.xxx.xx.xx müßte durch die IP ersetzt werden.

Kann mir vielleicht jemand behilflich sein.

Vielen Dank schon mal.
Mitglied: bastla
26.11.2007 um 15:55 Uhr
Hallo Kn0cki17 und willkommen im Forum!

Einige Fragen vorweg:

  • Sind die Zeilenblöcke vor und nach dem Beispielstring konstant, oder müssen diese jeweils ausgelesen und in das Ergebnis übernommen werden?
  • Welche Teile Deines Beispielstrings sind konstant bzw zum Auffinden der Zeile geeignet (vermutlich nur "serverpath=")?
  • Ist die IP-Adresse immer (bei Delimiter ",") das zweite Token in der Zeile?
  • Ich nehme mal nicht an, dass sich tatsächlich "xxx.xxx.xx.xx" in der betreffenden Zeile befindet - richtig?
  • Spricht etwas gegen den Einsatz von VBScript?

Grüße
bastla
Bitte warten ..
Mitglied: Kn0cki17
26.11.2007 um 16:09 Uhr
Hallo,

erstmal danke für die schnelle Antwort, hier also meine kurze Antwort.

die Zeilenblöcke über und unter dem Beispielstring sind eigentlich konstant.

Der zu ersetzende String ist wirklich xxx.xxx.xx.xx und alles außer dieser wäre konstant.
Bitte warten ..
Mitglied: bastla
26.11.2007 um 16:35 Uhr
Hallo Kn0cki17!

Wenn wirklich der ganze Rest konstant ist, könntest Du einfach die Zeilen vorher in eine "ini1.txt" und die Zeilen nachher in eine "ini2.txt" packen und damit etwa so verfahren:
01.
@echo off & setlocal
02.
set "Ziel=D:\Irgendeine.ini"
03.
set "Teil1=D:\ini1.txt"
04.
set "Teil2=D:\ini2.txt"
05.
 
06.
set IP=
07.
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Ad"') do set "IP=%%i"
08.
if not defined IP echo Keine IP-Adresse gefunden! & goto :eof
09.
 
10.
set IP=%IP: =%
11.
type "%Teil1%">"%Ziel%"
12.
echo serverpath=abcdse1,%IP%,9521/*>>"%Ziel%"
13.
type "%Teil2%">>"%Ziel%"
Falls das Leerzeichen vor der IP nicht stören sollte, könntest Du sogar noch die Zeile "set IP=%IP: =%" einsparen ...

Grüße
bastla
Bitte warten ..
Mitglied: Pedant
26.11.2007 um 19:11 Uhr
Hallo Kn0cki17,

Dein IP-Auslesen-Script funktionier bei mir nicht.

Wenn alles konstant ist, ausser der IP, dann kannst Du doch auch die komplette Datei per Batch generieren, dann musst Du nichts austauschen.
Das hat nur die Einschränkung, dass einige Sonderzeichen nicht durch echo ausgegeben werden können, z.B.: <, | und >

Alternativ kannst Du auch die Inhalte splitten und per copy zusammenfügen.
copy anfang.txt + variable.txt + ende.txt fertig.ini


01.
@echo off
02.
 
03.
:ipconfig-lesen
04.
ipconfig | find "IP-Ad" > %temp%\a.tmp
05.
type %temp%\a.tmp | find /n " " > %temp%\b.tmp
06.
type %temp%\b.tmp | find "[2]" > %temp%\c.tmp
07.
set /p ipnummer_a= < %temp%\c.tmp
08.
set ipnummer_a=%ipnummer_a:~47,15%
09.
 
10.
:ping-lesen
11.
ping %computername% /n 1 | find "Ping-Sta" > %temp%\d.tmp
12.
set /p ipnummer_b= < %temp%\d.tmp
13.
set ipnummer_b=%ipnummer_b:~19,-1%
14.
rem set ipnummer_b=%ipnummer_b:~0,-1%
15.
 
16.
:ini-generieren
17.
echo zeile 1 > dings.ini
18.
echo zeile 2 >> dings.ini
19.
echo zeile 3 >> dings.ini
20.
echo texttexttext %ipnummer_a% texttexttext >> dings.ini
21.
echo texttexttext %ipnummer_b% texttexttext >> dings.ini
22.
echo zeile 5 >> dings.ini
23.
echo zeile 6 >> dings.ini
24.
 
25.
:aufraeumen
26.
del %temp%\a.tmp
27.
del %temp%\b.tmp
28.
del %temp%\c.tmp
29.
del %temp%\d.tmp
30.
set ipnummer_a=
31.
set ipnummer_b=
32.
 
33.
:ende
34.
exit

Erklärung:

Hier sind zwei Methoden in einer Batch genutzt.
Die schlechtere Methode kann auskommentiert oder gelöscht werden.

Bei IP-Config ergibt sich das Problem, dass mehrere IP-Nummern vorhanden sein können.

1. Alle Zeilen mit "IP-Ad" werden in a.tmp abgelegt
2. Die Zeilen von a.tmp werden durchnummeriert und in b.tmp gespeichert.
3. Die zweite Zeile ("[2]") von b.tmp wir in c.tmp abgelegt.
Es wird unterstellt, dass die interessante IP sich immer in Zeile 2 befindet.
4. Der Inhalt von c.tmp wird in ipnummer_a gespeichert.
5. ipnummer_a wird getrimmt, ab der Position 47 werden 15 Zeichen genommen.

Bei ping wird hier die Systemvariable %computername% genutzt.
Was das bei Rechnern ausgibt, die mit mehreren Karten in unterschiedlichen Netzwerken stecken, weiß ich nicht.

1. Die Zeile mit der IP von einem ping mit nur einem Packet ( /n 1) wird in d.tmp gespeichert.
2. Der Inhalt von d.tmp wird in ipnummer_b gespeichert.
3. ipnummer_b wird getrimmt, ab der Position 19 werden alle Zeichen bis zum Vorletzten genommen.

Daraus solltest Du Dir was Passendes basteln können.

Gruß Frank
Bitte warten ..
Mitglied: bastla
26.11.2007 um 19:49 Uhr
@Pedant
Das hat nur die Einschränkung, dass einige Sonderzeichen nicht durch echo ausgegeben werden können, z.B.: <, | und >
Kurze Anmerkung: Wenn Du diese Sonderzeichen mit ^ maskierst, klappt auch die Ausgabe mit "echo":
01.
echo ^<^|^> >Sonderzeichen.txt
Grüße
bastla
Bitte warten ..
Mitglied: Kn0cki17
27.11.2007 um 08:40 Uhr
Vielen Dank für die Hilfe, hat gut funktioniert.
Bitte warten ..
Mitglied: Pedant
27.11.2007 um 11:45 Uhr
Hallo basla,

vielen Dank für die Anmerkung, das war sehr hilfreich.

Apropos Nachhilfe:

In vielen Batches finden sich relativ kryptische for-Konstruktionen.
for /? half mir, Deine Konstruktion zu verstehen, aber für ein tiefes Verstehen der for-Syntax ist es nicht geeignet. Google brachte mich da auch nicht weiter.
Kennst Du eine Seite, die mit veranschaulichenden Beispielen, "for" erklärt?


Ich versuch mal Deine for-Anweisung zu erklären:
01.
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Ad"') do set "IP=%%i"
Führe ipconfig aus und übergebe die Ausgabe des Befehls an find.
Find sucht in jeder Zeile nach der Zeichenfolge "IP-Ad" und gibt alle Zeilen, die die Zeichenfolge enthalten aus.
/f ermöglicht die Angabe von weiteren Optionen. Die Optionen sorgen dafür, dass der Text jeder Zeile gesplittet wird, in diesem Fall am Doppelpunkt. delims=:
tokens=2 weist an, nur den zweiten Teilstring in der Variablen %%i zu speichern, die dann in der weiteren Verarbeitung in der do-Anweisung verwendet wird.

01.
Find "IP-Ad" liefert
02.
"        IP-Adresse. . . . . . . . . . . . : 192.168.0.100"
03.
 
04.
delims=: splittet am Doppelpunkt in
05.
"        IP-Adresse. . . . . . . . . . . ." und " 192.168.0.100"
06.
 
07.
tokens=2 wählt für %%i
08.
" 192.168.0.100"
09.
 
10.
do set "IP=%%i" bewirkt
11.
set "IP= 192.168.0.100"
12.
 
13.
und das Alles für jede Zeile die find "IP-Ad" in der Ausgabe von ipconfig findet.
Wenn also von find drei Zeilen mit "IP-Ad" gefunden werden, wird die Variable IP dreimal mit dem Wert von %%i neu belegt. Das Ergebnis ist, dass in IP die zuletzt ausgegebene IP-Adresse von ipconfig gespeichert wird.

Interessiert man sich für die zweite von drei IP-Adressen, so müsste man den Code variiren.
Vermutlich reicht es in den meisen Fällen nach dem Netzwerk-Teil der erwünschten IP-Adresse suchen zu lassen, statt allgemein nach "IP-Ad", also nach z.B. "192.168.0."


Jetzt zu Deiner Set-Anweisung:
01.
set IP=%IP: =%
Diese Zeile hat mich auch einen Moment beschäftigt, bis ich sie verstand.
%Var:Optionen% ist im allgemeinen eine String-Operation, beispielsweise die Extrahierung eines Teilstrings. In Deinem Fall ist es ein "Suchen und Ersetzen", was ich bisher nicht kannte und zwar ersetze alle " " durch "".

Beispiel:
01.
@echo off
02.
set var=Soooofahroor
03.
echo vorher: %var%
04.
set var=%var:oo=e%
05.
echo nachher: %var%
01.
Ausgabe von echo:
02.
vorher: Soooofahroor
03.
nachher: Seefahrer
Gruß Frank
Bitte warten ..
Mitglied: bastla
27.11.2007 um 13:08 Uhr
Hallo Pedant!

Kann nur gratulieren - so, wie Du es erklärt hast, war mein Beispiel auch gemeint.

Kennst Du eine Seite, die mit veranschaulichenden Beispielen, "for" erklärt?
Da muss ich leider passen - bis auf den Hinweis, dass Du natürlich hier im Forum eine Menge an mehr oder weniger ausführlich dokumentierten Beispielen sowie einige äußerst empfehlenswerte Tutorials (insbesondere von Biber) vorfindest (was Du als Mitglied mit wesentlich höherem "Dienstalter" als ich ja ohnehin wissen wirst ...).
Noch eine Anmerkung zum Thema "mehrere Netzwerkadapter / IP-Adressen": Wie Du richtig anmerkst, braucht es in diesem Fall ein weiteres Kriterium, um den richtigen Eintrag zu erhalten. Soferne einfach die letzte (weil ohnehin einzige) Adresse verwendet werden kann, klappt es mit meinem obigen Batch. Falls alternativ die erste Adresse benötigt wird, ginge das so:
01.
set IP=
02.
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Ad"') do if not defined IP set "IP=%%i"
Ansonsten eben ein weiteres "find" (oder "findstr"):
01.
set IP=
02.
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Ad"^|find "192.168.0."') do set "IP=%%i"
Damit ist einerseits sichergestellt, dass es sich um die IP-Adresse handelt, und zum anderen eben auch noch die für das gewünschte Netzwerk "Zuständige" selektiert.

Grüße
bastla

[Edit] Fehlende Variable IP in "if not defined IP" ergänzt. [/Edit]
Bitte warten ..
Mitglied: Pedant
27.11.2007 um 13:49 Uhr
Hallo,

mit den Werkzeugen von basla versuche ich gerade die ursprüngliche Aufgabenstellung zu bewerkstellingen, nämlich in einer ini-Datei einen bestimmten Wert durch die IP zu ersetzen.

Das scheitert aber noch an einer Stelle.


Ausgangspunkt ist eine ini-Datei mit festem Inhalt.
01.
Inhalt von allgemeine.ini:
02.
Zeile 1
03.
Zeile 2
04.
serverpath=abcdse1,xxx.xxx.xx.xx,9521/*
05.
Zeile 4
Die Batch, die eine geänderte ini-Datei erzeugen soll:
01.
@echo off
02.
 
03.
if "%1"=="" (
04.
   cmd /v:on /k %0 dummyparameter
05.
   exit
06.
)
07.
 
08.
:ip-auslesen
09.
set IP=
10.
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Ad"') do set "IP=%%i"
11.
if not defined IP echo Keine IP-Adresse gefunden! & goto :eof
12.
set IP=%IP: =%
13.
 
14.
:ini-neu-schreiben
15.
cls
16.
echo.
17.
echo Eingabe:
18.
if exist spezielle.ini del spezielle.ini
19.
for /f "delims=" %%i in ('type allgemeine.ini^') do (
20.
   set zeile=%%i
21.
   echo !zeile!
22.
   echo !zeile:xxx.xxx.xx.xx=192.168.0.100! >> spezielle.ini
23.
)
24.
 
25.
:test
26.
echo.
27.
echo IP-Nummer: !IP!
28.
echo.
29.
echo Ausgabe:
30.
type spezielle.ini
Hinweis:
Damit das Auswerten der Variablen "zeile" innerhalb der for-Schleife überhaupt funktioniert, ruft sich die Batch am Anfang selbst neu auf und zwar mit der cmd-Option "/v:on".
Das aktiviert die "verzögerte Erweiterung von Variablen" für diese Instanz des cmd.

01.
Die Ausgabe der Batch:
02.
 
03.
Eingabe:
04.
Zeile 1
05.
Zeile 2
06.
serverpath=abcdse1,xxx.xxx.xx.xx,9521/*
07.
Zeile 4
08.
 
09.
IP-Nummer: 192.168.1.60
10.
 
11.
Ausgabe:
12.
Zeile 1
13.
Zeile 2
14.
serverpath=abcdse1,192.168.0.100,9521/*
15.
Zeile 4
Der Knackpunkt ist das Suchen und Ersetzen in der Variablen "zeile" mit der Variablen "IP".
In der Batch verwende ich noch einen festen String "192.168.0.100" und nur so gelingt es bisher.
01.
Funktioniert:
02.
echo !zeile:xxx.xxx.xx.xx=192.168.0.100! >> spezielle.ini
01.
Funktioniert nicht:
02.
echo !zeile:xxx.xxx.xx.xx=!IP!! >> spezielle.ini
Wie kann man hier Variablen verschachten?


@bastla,
01.
... do if not defined set "IP=%%i"
Ich glaube an der Stelle liegt ein Fehler vor, da nicht angegeben ist, was eventuell nicht definiert wurde. Müsste es nicht wie folgt aussehen?
01.
... do if not defined IP set "IP=%%i"
Ein funktionierendes Beispiel:
01.
@echo off
02.
if not defined IP set "IP=eins"
03.
if not defined IP set "IP=zwei"
04.
if not defined IP set "IP=drei"
05.
echo IP: %IP%
01.
Ausgabe:
02.
IP: eins
Gruß Frank
Bitte warten ..
Mitglied: Biber
27.11.2007 um 13:59 Uhr
Moin Pedant,

eine Seite, wo der FOR-Befehl anschaulich erklärt und diskutiert wird kenne ich auch nicht.

Aber vielleicht könnten wir hier im Forum, ausgehend von dem Beispiel, das Du so schön analysiert hast mit wenigen Copy&Paste-Klicks ein kleines Tutorial zu dem Thema erstellen.

Deinen letzten Kommentar fände ich jedenfalls sinnvoller nochmals als Tutorial gepostet - hier im aktuellen Thread werden ihn nicht viele auf der Suche nach FOR-Beispielen gezielt finden.

So oder so vielen Dank für die wirklich gut gelungene Erklärung.
Und natürlich wieder mal Dank an bastla für die Vorlage dazu.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
27.11.2007 um 14:17 Uhr
Hallo Pedant!

Ich glaube an der Stelle liegt ein Fehler vor
Leider ja; ich korrigiere das oben.

Funktioniert nicht:
echo !zeile:xxx.xxx.xx.xx=!IP!! >> spezielle.ini
Wie kann man hier Variablen verschachten?
Hast Du
01.
echo !zeile:xxx.xxx.xx.xx=%IP%! >> spezielle.ini
schon versucht?

... cmd-Option "/v:on" ... aktiviert die "verzögerte Erweiterung von Variablen" für diese Instanz des cmd.
Wo siehst Du den Vorteil gegenüber "setlocal enabledelayedexpansion"?

Grüße
bastla
Bitte warten ..
Mitglied: Biber
27.11.2007 um 14:29 Uhr
Moin Pedant,

hat sich leider überschnitten, mein Vor-Post bezog sich auf deinen vorletzten Kommentar.
zu dem letzten Beispiel (Wechseln/Ersetzen mit Variablen): Es geht schon.

Beispiel/Proof of Concept fürs Erstezen (am Cmd-Prompt):
[DelayedExpansion ist ON, Zeilen beginnend mit ">" sind Eingaben]
01.
>set IP=10.111.222.33
02.
>set "zeile=serverpath=xxx.xxx.xxx"
03.
>set dummy=xxx.xxx.xxx.xxx
04.
>echo !zeile:%dummy%=%IP%!
05.
serverpath=10.111.222.33,9521/*
In einem Ausschnitt Deines Schnipsels:
01.
 ....setlocal EnableDelayedExpansion
02.
...
03.
if exist spezielle.ini del spezielle.ini
04.
::# nächste Zeile nur Demo
05.
Set IP=192.168.0.100
06.
for /f "delims=" %%i in ('type allgemeine.ini') do (
07.
   set zeile=%%i
08.
   echo !zeile!
09.
   REM entweder so..
10.
   REM echo !zeile:xxx.xxx.xx.xx=%IP%! 
11.
   REM oder jetzt als längeres, wenn auch überflüssiges Beispiel:
12.
   Call :ReplaceInVarAltMitNeu zeile xxx.xxx.xx.xx 192.168.0.100 
13.
   echo !zeile! 
14.
)
15.
 
16.
goto :eof
17.
 
18.
:ReplaceInVarAltMitNeu par1=varname par2=alterString Par3=neuerString
19.
REM Aber: die Variable %zeile% wird NICHT als Wert, nur als Name übergeben
20.
Set "tmpvar=!%1!"
21.
Set tmpvar=!tmpvar:%2=%3!
22.
set "%1=%tmpvar%"
23.
Goto :eof
[Ungetestete Skizze]

Grüße
Biber
Bitte warten ..
Mitglied: Pedant
27.11.2007 um 15:53 Uhr
@bastla,

Hast Du
echo !zeile:xxx.xxx.xx.xx=%IP%! >> spezielle.ini

schon versucht?

Nein, hatte ich nicht, aber es funktioniert, allerdings dachte ich, ich hätte alle Kombinationen von % und ! ausprobiert.

... cmd-Option "/v:on" ... aktiviert die "verzögerte Erweiterung von Variablen" für diese Instanz des cmd.
Wo siehst Du den Vorteil gegenüber "setlocal enabledelayedexpansion"?
Der Vorteil lag darin, dass ich das kannte, das Andere aber nicht.
"setlocal enabledelayedexpansion" ist offensichtlich einfacher und funktioniert auch.


@Biber

Aber vielleicht könnten wir hier im Forum, ausgehend von dem Beispiel, das Du so schön analysiert hast mit wenigen Copy&Paste-Klicks ein kleines Tutorial zu dem Thema erstellen.
Ich bin im Moment noch nicht dazu in der Lage, da ich nur durch Testen und Lesen diese eine, vorgegebene Variante der For-Schleife verstanden habe.
Der For-Befehl im Allgemeinen, bietet aber noch reichlich mir unverständliche Varianten.

Sprungziele per call und Parameter als Subroutienen zu nutzen ist auch eine interessante und für mich neue Methode.


@Kn0cki17

die finale Batch sieht jetzt also so aus:
01.
@echo off
02.
 
03.
:konfiguration
04.
setlocal enabledelayedexpansion
05.
set quelle=allgemeine.ini
06.
set ziel=spezielle.ini
07.
set suchen=xxx.xxx.xx.xx
08.
set ersetzen=yyy.yyy.yy.yy
09.
set netzwerk=192.168.0.
10.
 
11.
REM goto letzte_ip_auslesen    - falls die letzte IP benutzt werden soll.
12.
REM goto spezielle_ip_auslesen - falls eine andere IP benutzt werden soll.
13.
REM goto neue_ini_schreiben    - falls fester Text fuer suchen und ersetzten genutzt werden soll.
14.
 
15.
goto letzte_ip_auslesen
16.
 
17.
:letzte_ip_auslesen
18.
set IP=
19.
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Ad"') do set "IP=%%i"
20.
if not defined IP echo Keine IP-Adresse gefunden! & goto ende
21.
set ersetzen=%IP: =%
22.
goto neue_ini_schreiben
23.
 
24.
:spezielle_ip_auslesen
25.
set IP=
26.
for /f "tokens=2 delims=:" %%i in ('ipconfig^|find "IP-Ad"^|find "%netzwerk%"') do set "IP=%%i"
27.
if not defined IP echo Keine IP-Adresse gefunden! & goto ende
28.
set ersetzen=%IP: =%
29.
goto neue_ini_schreiben
30.
 
31.
:neue_ini_schreiben
32.
if exist %ziel% del %ziel%
33.
for /f "delims=" %%i in ('type %quelle%^') do (
34.
   set zeile=%%i
35.
   echo !zeile:%suchen%=%ersetzen%! >> %ziel%
36.
)
37.
 
38.
REM move %ziel% %quelle% - falls das ziel die quelle ersetzen soll.
39.
 
40.
:ende
Wo steckst Du eigentlich?

Gruß Frank
Bitte warten ..
Mitglied: bastla
28.11.2007 um 01:39 Uhr
Hallo Pedant:

Auch wenn's eigentlich nicht stattfinden soll - einen hab' ich noch: In ":ziel_ersetzt_quelle" würde ein "move" genügen:
01.
move %ziel% %quelle%
Grüße
bastla
Bitte warten ..
Mitglied: Biber
28.11.2007 um 07:56 Uhr
@bastla
In ":ziel_ersetzt_quelle" würde ein "move" genügen
Noch genauer formuliert:
Statt ":ziel_ersetzt_quelle" würde ein "move" genügen.

SCNR

@Kn0cki17 aka ThreadOwner
Pedants Frage interessiert mich aber auch: Liest Du noch mit?
Wie ist der gefühlte Lösungs-/Beantwortungsgrad Deiner Frage?

Wir chatten ja schon seit zwei Tagen zwar kompetent und kurzweilig, aber eindeutig OffTopic hier rum...
Kann der Thread geschlossen werden oder sind noch Fragen offen?

Grüße
Biber
Bitte warten ..
Mitglied: Pedant
28.11.2007 um 13:18 Uhr
@bastla,

ich habe das copy+delete durch move ersetzt.


@Biber,

ich nutze Sprungmarken nicht nur zum Anspringen, sondern auch zum Kommentieren und Strukturieren, also um Programmblöcke zu benennen.
In diesem Fall war es aber tatsächlich zuviel des Guten.

Ich habe jetzt
REM quelle_ersetzt_ziel soll nicht stattfinden, deswegen
goto ende

:quelle_ersetzt_ziel
copy %ziel% %quelle%
del %ziel%
reduziert auf
REM move %ziel% %quelle% - falls das Ziel die Quelle ersetzen soll.


Wir chatten ja schon seit zwei Tagen zwar kompetent und kurzweilig, aber eindeutig OffTopic hier rum...
Kann der Thread geschlossen werden oder sind noch Fragen offen?

Dem muss ich in zwei Punkten eindeutig wiedersprechen.
Kurzweilig ist es zumindest für mich nicht. Okay es ist auch nicht das Gegenteil, also langweilig, aber mit Kürze hat es auch nichts zu tun. Es hat mich schon diverse Stunden beschäftigt, meinen Code zu schreiben und den von basta zu verstehen und auch bastla wird seine Code nicht in fünf Minuten runtergeschrieben haben.

Und OffTopic ist es auch nicht. Jeder einzelen Beitrag im Thread nimmt konkreten Bezug auf die ursprüngliche Anfrage und nur zusätzlich wird auch über das Ziel hinaus, aber nicht daran vorbei, diskutiert.

Klingt jetzt vielleicht so, als wäre ich beleidigt, das ist definitiv nicht der Fall, ich wollte das nur kommentieren.

Wozu den Thread eigentlich schließen, auch falls Kn0cki17 sich meldet und sagt sein Problem wäre gelöst?
Reicht es nicht den Thread dann als gelöst zu markieren. Ein Anderer, der das gleiche Problem oder ein sehr ähnliches hat, könnte doch hier sinnvoll anknüpfen.
Ich würde den Thread erst schließen, wenn er tatsächlich ins OffTopic abgleitet.
(Und ironischerweise fängt er mit meinem letzten Absatz damit an.)

Gruß Frank
Bitte warten ..
Mitglied: Biber
28.11.2007 um 18:41 Uhr
Moin Pedant,

<grinz übers ganze Gesicht>
Selbst mich als jemanden, der schon mal auf einer F.D.P.-Wahlkampfveranstaltung länger als 23 Minuten ausgehalten hat und bisher glaubte, alle verbalen Verharmlosungsformen der deutschen Rhetorik gehört zu haben, selbst mich kannst Du mit so etwas begeistern:
und nur zusätzlich wird auch über das Ziel hinaus, aber nicht daran vorbei, diskutiert.
Erklär das mal einem Golfer...

Derart sprachliches Neuland wird eigentlich bei uns ernsthaften, humorlosen IT'lern eher selten betreten.

Aber sei's drum... vielleicht sind wir nicht "am Ziel vorbei" geschossen.
Dennoch steigt natürlich die Gefahr, dass wir hier im Thread Themen diskutieren, die niemand außer uns hier vermuten oder finden wird.
Bestes Beispiel sind oben Deine eigene excellente FOR-Anweisungs-Zerlegung oder auch die Erläuterung des Lösche-alle-Leerzeichen-mit-SET-Befehls.
Kannst Du beides Eins-u-Eins als Tutorial posten - alle sind glücklich, mit einem passenden Titel wird es auch wiedergefunden.

Hier im Thread, unter den Suchworten "IP" und "INI-Datei" ....keine Chance.
Deshalb bin ich eher Anhänger der altägyptschen Weisheit "Neues Thema, neuer Thread."

So, und mein GANZER Kommentar ist hier eindeutig OffTopic.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
BATCH ini Datei Datei auslesen
gelöst Frage von Juergen42Batch & Shell2 Kommentare

Hallo zusammen, ich möchte eine ini Datei auslesen mit folgenden Aufbau INHALT DER INI ID=30 NAME="test1" PFAD="K:\Kontoauszug\Test1\*.pdf" PFAD_S="K:\Kontoauszug\Test1\Sicherung\" ID=28 ...

Entwicklung
Werte aus INI Datei übernehmen
Frage von Manuel.PEntwicklung21 Kommentare

Guten Tag, ich habe folgendes Problem. Wir nutzen Activ Directory. Wir Nutzen nun ein Programm, das Telefongespräche anzeigt. Wenn ...

Windows Server

Terminalserver .ini Datei unter C:Windows

gelöst Frage von geocastWindows Server8 Kommentare

Guten Abend zusammen Ich habe mir hier einen Server 2012R2 Terminalserver zum Testen aufgesetzt. Ich habe dann unsere alte ...

Windows Installation

Firefox Silent Installation ini Datei

Frage von knomusWindows Installation4 Kommentare

Hallo, ich möchte den Firefox ESR mit dem Parameter /ini=ini-Datei installieren. in die Ini-datei habe ich SetDefaultBrowser=false geschrieben, damit ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 2 TagenHumor (lol)5 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 3 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 7 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 7 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
PCIe 1.0 Grafikkarte für 3840x2160
Frage von Windows10GegnerGrafikkarten & Monitore30 Kommentare

Hallo, mein Vater hat einen neuen Monitor gekauft, welcher eine native Auflösung von 3840*2160 hat. Diese muss jetzt auch ...

Windows Server
Dienstnamen und oder Deutsche und Englische Beschreibung in services.msc gleichzeitig anzeigen
gelöst Frage von vafk18Windows Server23 Kommentare

Guten Morgen, die Suche nach Diensten in services.msc gestaltet sich immer wieder schwierig, weil mir je nach Aufgabe die ...

Windows 10
Windows Enterprise 1809 Eval nicht bootbar
Frage von Sunny89Windows 1022 Kommentare

Hallo zusammen, bevor ich mich jetzt noch stundenlang rumärger wollte ich euch fragen, ob Ihr die gleichen Probleme habt ...

JavaScript
Javascript: WebSql
gelöst Frage von internet2107JavaScript14 Kommentare

Guten Morgen zusammen, zunächst einmal einen schönen dritten Advent. Ich habe ein Problem mit Javascript und WebSQL. Bisher habe ...