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
GELÖST

Mit Batch Datei 2 bestimmte Zeilen aus .ini verändern

Frage Entwicklung Batch & Shell

Mitglied: TRMxDEVIL

TRMxDEVIL (Level 1) - Jetzt verbinden

09.07.2008, aktualisiert 18.10.2012, 6192 Aufrufe, 8 Kommentare

Hallo Leute,
ich hab ein kleines Problem.
Ich habe eine ini datei, die ausser 2 voneinandere abhänige dinge immer gleich aussieht und zwar so:

vorher:
[Extern]
AnzRec=4
Rec1=[text]
Rec2=[text]
Rec3=[text]
Rec4=[text]

[Weitere Einträge......]

Was auch sein kann, ist das AnzRec=5 oder mehr ist, dann brauch ich natürlich AnzRec=6 oder mehr

Ich bräuchte jetzt eine Batchdatei, die die zahl hinter AnzRec= ausliest und dann diese um eins erhöht.
Dann muss die Batch auch noch unter Rec4 einen eintrag mit Rec5=TEST_TEXT erstellen.

Nachher:
[Extern]
AnzRec=5
Rec1=[text]
Rec2=[text]
Rec3=[text]
Rec4=[text]
Rec5=TEST_TEXT

Um raus zu bekommen, was hinter AnzRec= steht hab ich hier schonma einen schnipsel:

01.
SET anzrec="" 
02.
SET rec="" 
03.
 
04.
FOR /f "tokens=2 delims==" %%x in ('findstr "AnzRec" test.ini') do SET "anzrec_vor=%%x" 
05.
 
06.
SET /a rec="%anzrec%+1"
Mitglied: pumi32
09.07.2008, aktualisiert 18.10.2012
Hi TRMxDEVIL
ich würde das auslesen folgendermaßen machen (deine version ist auch nicht schlecht):
01.
for /f "delims=" %%a in ('find "AnzRec=" test.ini') do set x=%%a 
02.
set anzrec=%x:~7,% 
03.
set /a rec=%anzrec%+1
Und zu dem ändern deiner datei müsste man so ansetzen:
01.
for /f "delims=" %%a in ('type test.ini') do call :dateischreiben %%a 
02.
:dateischreiben 
03.
if %1==AnzRec=%anzrec% (AnzRec=%rec%>> test_neu.ini 
04.
) else ( 
05.
if %1==Rec%anzrec% (Rec%rec%=TEST_TEXT>> test_neu.ini 
06.
) else ( 
07.
echo %1 >> test_neu.ini 
08.
))
bitte testen, habe grade keine zeit dafür, ich bin auch nicht sicher ob es bugfrei is, denke haben an alles gedacht

Nur genau da glaube ich liegt das gleiche problem an dem ich an meinem Punkt ebenfalls nicht weiterkommen:
http://www.administrator.de/forum/auslesen-von-2-werten-aus-einer-textd ...

zumindest ähnlich
Bitte warten ..
Mitglied: TRMxDEVIL
10.07.2008 um 09:57 Uhr
Ja, das Problem ist ähnlich....
ich hab hier ausm Forum schonma einen schnippsel, der mir an die richtige stelle rec5 einsetzt.

Mein Problem ist jez "nur" noch AnzRec=5 zu setzen.

inhalt der test_neu.ini

[Extern]
AnzRec
Rec1
Rec2
Rec3
Rec4

Keine gleichheitszeichen mehr und auch kein text hinter xD.

Hier ma der komplette Batch, der schonma REC5 schreibt.

01.
@echo off & setlocal  
02.
 
03.
set anzrec="" 
04.
set rec="" 
05.
set "Quelle=%homepath%\desktop\test.ini"  
06.
 
07.
cd "%homepath%\desktop\" 
08.
 
09.
for /f "tokens=2 delims==" %%x in ('findstr "AnzRec" "%Quelle%"') do set "anzrec=%%x" 
10.
 
11.
set rec=%anzrec% 
12.
set /a rec="%rec%+1" 
13.
set "Mark=Rec%anzrec%="  
14.
set "Insert=Rec%rec%=TEST_TEXT" 
15.
set "TempTxt=%temp%\TT.txt"  
16.
 
17.
copy "%Quelle%" "%TempTxt%">nul  
18.
del "%quelle%" 
19.
 
20.
set Zeile=0  
21.
for /f "delims=:" %%i in ('findstr /n /i /b /c:"%Mark%" "%TempTxt%"') do set Zeile=%%i  
22.
 
23.
 
24.
if %Zeile%==0 goto :Rest  
25.
for /f "tokens=1* delims=:" %%i in ('findstr /n $ "%TempTxt%"') do if %%i leq %Zeile% echo.%%j>>"%Quelle%" 
26.
echo %Insert%>>"%Quelle%" 
27.
 
28.
 
29.
:Rest  
30.
more +%Zeile% "%TempTxt%">>"%Quelle%" 
31.
 
32.
pause
Bitte warten ..
Mitglied: pumi32
10.07.2008 um 16:25 Uhr
Ich würde schätzen das hier nicht alles mitgeliefert wird:
for /f "delims=:" %%i in ('findstr /n /i /b /c:"%Mark%" "%TempTxt%"') do set Zeile=%%i

weil du dort unterteilst
wenn ich bei meinem prob weiter bin meld ich mich wieder, sonst kommt man nur noch mehr durcheinander ^^
Bitte warten ..
Mitglied: Biber
10.07.2008 um 20:58 Uhr
Moin TRMxDEVIL

willkommen im Forum.

Finde ich äußerst vielversprechend, wie ihr (pumi32 und Du) euch hier durchzubeißen versucht.

Will es Euch auch gern allein zu Ende bringen lassen, aber ein paar Fallstricke, die eher einem geübten Auge auffallen, möchte ich aufzeigen... die findet ihr sonst erst nach Tagen.

Bezogen auf die Zeilennummern in TRMxDEVILs letztem Schnipsel

Zeile 03:/04
Set anzrec=""
----> das setzt nicht die Variable %anzrec% auf {leer} oder löscht diese, sondern setzt die auf den Wert [zwei Anführungszeichen]
ist anders als in anderen Skriptsprachen, wo diese Syntax eher bedeuten würde: Setze String anzrec auf Leerstring.
Beide Zeilen sind überflüssig, da durch das "& setlocal" gesagt wurde: "verwende neu angelgte Variablen nur intern, lege keinen globalen Variablen an"

Zeile 05:
Genau hinschauen. Hier wird vermeintlich ein Komplett-Pfad gesetzt.
Aber die Laufwerksangabe fehlt. Also das "C:\" oder "D:\" oder "%HomeDrive%"

Ist gefährlich ... weil: niemand kann ausschließen , dass der Batch mal aufgerufen wird, wenn sich der geneigte User und mit ihm das Betriebssystem auf Laufwerk E, oder USB-Stick S: befindet.
Dann geht alles danach in die Grütze.

Zeile 07:
Ein "CD \pfad\nochmehrpfad" ist (wie im letzten Punkt angedeutet) immer suboptimal.
Außerdem wechselt man7frau nicht in einem Programmschnipsel Lw oder Pfad wenn nicht am Ende der Ur-zustand wiederhergestellt wird.
Ist sonst Pfusch. Redmond-Stil.Aäbäh eben.

Besser: Wenn es denn unbedingt sein muss, dann wechseln und wiederherstellen mit PushD/PopD [siehe PushD /? etc. am CMD-Prompt].
hier muss es gar nicht sein -- Lass die Zeile weg.


Zeile 17/18
Na, na, na... wer löscht denn da eine Quelldatei, bevor eine neue Zieldatei ohne Fehler erzeugt werden konnte??!!??
So was tut man/frau nicht. Ist sonst Pfusch. Re^H^H^H.... Rest siehe oben.

---> erst abwarten, ob wir eine neue Ersatzdatei hinbekommen.... bis dahin wird die Quell-Datei nur gelesen, nicht gelöscht.
Das Ersetzen der alten Ini-Datei durch eine neue erst ganz am Ende.

Zeile 21: hier wird es fehlerträchtig...(fast) immer habt ihr mit der SET-Syntax [Set "var=wert"], also mit Anführungszeichen gearbeitet.
Hier nun nicht. und prompt steht nach dem .."....DO .Set Zeile=%%i "<--- hier am Ende ein Leerzeichen nach %%i.

Besser hier (soll ja eine "numerische" Variable sein: ...Do Set /a zeile=%%i

Zeile 24:
Hier würde ich dann ändern auf
if %Zeile% EQU 0 goto .Rest
Wenn vorher %zeile% mit "SET /a " auf einen "arithmetischen" Wert gesetzt wurde, dann steht auch "numerisch null" drin bei Fehler.

Zeile 25
Würde ich so erweitern, dass alle drei Fälle ("%%i ist KleinerGleich, Gleich, größer als %zeile% ")abgefrühstückt werden.
Dann kann das "more"-Konstrukt in Zeile 30 entfallen.

01.
.... 
02.
:: REM Achtung: %Quelle% ist in meinem Ablauf NICHT gelöscht!! siehe oben 
03.
if exist "%tempTxt%" del "%tempTxt%"  
04.
for /f "tokens=1* delims=:" %%i in ('findstr /n $ "%Quelle%"') do ( 
05.
      if %%i LEQ %Zeile% echo.%%j>>"%TempTxt%"  
06.
      if %%i EQU %Zeile% echo.%INSERT%>>"%TempTxt%" 
07.
      if %%i GTR %Zeile% echo.%%j>>"%TempTxt%"   
08.
)
-oder- ^^... (kürzer würde auch genügen, sagen meine Praktikantinnen immer)..
01.
.... 
02.
:: REM Achtung: %Quelle% ist in meinem Ablauf NICHT gelöscht!! siehe oben 
03.
if exist "%tempTxt%" del "%tempTxt%"  
04.
for /f "tokens=1* delims=:" %%i in ('findstr /n $ "%Quelle%"') do ( 
05.
      if %%i NEQ %Zeile% echo.%%j>>"%TempTxt%"  
06.
      if %%i EQU %Zeile% echo.%INSERT%>>"%TempTxt%" 
07.
)
So solltet ihr zumindest einen pfleg- und wartbaren Ausgangsbatch für evtl. Fehlersuche haben.

Grüße
Biber
Bitte warten ..
Mitglied: pumi32
11.07.2008 um 21:20 Uhr
Danke für die infos Biber
so dann fasse ich mal zusammen:

Es gibt noch kleine Probs:
Anzrec wird nicht erhöt und Rec4 wird ersetzt

01.
@echo off & setlocal  
02.
 
03.
set "Quelle=%HomeDrive%%homepath%\desktop\test.ini"  
04.
 
05.
PushD "%HomeDrive%%homepath%\desktop\" 
06.
 
07.
for /f "tokens=2 delims==" %%x in ('findstr "AnzRec" "%Quelle%"') do set "anzrec=%%x" 
08.
 
09.
set rec=%anzrec% 
10.
set /a rec="%rec%+1" 
11.
set "Mark=Rec%anzrec%="  
12.
set "Insert=Rec%rec%=TEST_TEXT" 
13.
set "TempTxt=%temp%\TT.txt"  
14.
 
15.
copy "%Quelle%" "%TempTxt%">nul 
16.
 
17.
set Zeile=0 
18.
for /f "delims=:" %%i in ('findstr /n /i /b /c:"%Mark%" "%TempTxt%"') do set /a "Zeile=%%i" 
19.
 
20.
if %Zeile% EQU 0 goto :Rest 
21.
:: REM Achtung: %Quelle% ist in meinem Ablauf NICHT gelöscht!! siehe oben 
22.
if exist "%tempTxt%" del "%tempTxt%"  
23.
for /f "tokens=1* delims=:" %%i in ('findstr /n $ "%Quelle%"') do ( 
24.
      if %%i NEQ %Zeile% echo.%%j>>"%TempTxt%"  
25.
      if %%i EQU %Zeile% echo.%INSERT%>>"%TempTxt%" 
26.
27.
 
28.
:Rest  
29.
more +%Zeile% "%TempTxt%">>"%Quelle%" 
30.
 
31.
:: if exist "%TempTxt%" del "%quelle%" 
32.
pause
Bitte warten ..
Mitglied: TRMxDEVIL
12.07.2008, aktualisiert 18.10.2012
Da das ganze auf das Ende zuläuft, ich hab fast ne lösung, nur noch nen "kleiner" Schönheitsfehler.
Hier ma die KOMPLETTE ORGINAL INI.

01.
[Extern] 
02.
AnzRec=4 
03.
Rec1=BG-Abrechnung, bg 
04.
Rec2=Krankenblattübersicht Patient, ..\..\prog\wprog\kspat 
05.
Rec3=Dauerdiag./-medi. absetzen, ..\..\prog\wprog\diamedab 
06.
Rec4=BG-Geb.Ord. „ndern, ..\..\prog\wprog\bgupd 
07.
 
08.
[KVK] 
09.
Port=-1 
10.
 
11.
Dos=0 
12.
PortMobil=0 
13.
[Word] 
14.
Word=1 
15.
 
16.
[ZMS] 
17.
ZMS=1 
18.
 
19.
[KB-Farbe] 
20.
A= 
21.
B= 
22.
D=000,128,192 
23.
DD=128,128,192 
24.
DM= 
25.
F= 
26.
G= 
27.
L= 
28.
M= 
29.
N= 
30.
S= 
31.
T= 
32.
Z=255,000,000 
33.
U=192,192,192 
34.
H=255,255,255 
35.
 
36.
[Formulare] 
37.
HMV=0 
38.
 
39.
[SELBUTTON] 
40.
BUTTON15=34
So mit dieser Batch (noch nicht angepasst an die Version von euch bzw an die Korrektur vorschläge von Biber, der orginal schnippsel war übrigens von Bastla http://www.administrator.de/forum/mittels-batch-an-bestimmte-stelle-der ... :-P) läuft alles soweit, bis auf den Schönheitsfehler, überall wo eigentlich eine Leerezeile wäre, ist nachher im Test.txt der vorherige eintrag doppelt.

01.
@echo off & setlocal  
02.
 
03.
set anzrec= 
04.
set rec= 
05.
set "Quelle=%homepath%\desktop\test.ini"  
06.
 
07.
cd "%homepath%\desktop\" 
08.
 
09.
for /f "tokens=2 delims==" %%x in ('findstr "AnzRec" "%Quelle%"') do set "anzrec=%%x" 
10.
 
11.
set rec=%anzrec% 
12.
set /a rec="%rec%+1" 
13.
set "Mark=Rec%anzrec%="  
14.
set "Insert=Rec%rec%=TEST_TEXT" 
15.
set "TempTxt=%temp%\TT.txt"  
16.
 
17.
REM Jez ist hier "nur" rename ;) 
18.
copy "%Quelle%" "%TempTxt%">nul  
19.
ren "%Quelle%" test.ini.backup 
20.
 
21.
set Zeile=0  
22.
for /f "delims=:" %%i in ('findstr /n /i /b /c:"%Mark%" "%TempTxt%"') do set Zeile=%%i  
23.
 
24.
 
25.
if %Zeile%==0 goto :Rest  
26.
for /f "tokens=1* delims=:" %%i in ('findstr /n $ "%TempTxt%"') do if %%i leq %Zeile% echo.%%j>>"%Quelle%" 
27.
echo %Insert%>>"%Quelle%" 
28.
 
29.
 
30.
:Rest  
31.
more +%Zeile% "%TempTxt%">>"%Quelle%" 
32.
 
33.
pause 
34.
 
35.
findstr /n .* test.ini > test_n.ini 
36.
 
37.
REM nur zu Testzwecken, damit das Test.txt übersichtlich bleibt.... 
38.
IF EXIST test.txt DEL test.txt 
39.
 
40.
 
41.
set zeile=0 
42.
set zahl=1 
43.
set ausgabe=abc 
44.
 
45.
for /f "tokens=1 delims=:" %%i in ('findstr : test_n.ini') do set "zeile=%%i" 
46.
 
47.
set /a zeile=%zeile%+1 
48.
echo Zeilen = %zeile% 
49.
 
50.
:while 
51.
for /f "tokens=2 delims=:" %%x in ('findstr /b /l %zahl%: test_n.ini') do set "ausgabe=%%x" 
52.
 
53.
 
54.
IF %zahl% == 2 (echo AnzRec=%rec% >> test.txt) else (echo %ausgabe% >> test.txt)  
55.
 
56.
set /a zahl=%zahl%+1 
57.
IF NOT %zahl% == %zeile% goto while 
58.
 
59.
pause
Ich denke ich hoffe ich find am WE die zeit hier rein zugucken, kann nichts versprechen.

Edit1:
Quelle auf dem Dekstop ist nur zur Testphase.
Beim späterem Einsatz, wird mit 2 eingaben ermittelt wo die Datei ist.
Den jeder Rechner, auf dem die Batch später ausgeführt wird, hat auf dem Server ein Userverzeichnis, welches immer unterschiedlich ist.

Ich kann ja ma hinterher (wenn das hier gelöst ist) den kompletten Batch posten. Der Batch bearbeitet 3 verschiedene ini Dateien.
Nur den hab ich gerade net hier, der kommt frühstens Montag.

Edit2:
Ich habs, war wieder nur so nen kleiner fehler.
01.
:while 
02.
for /f "tokens=2 delims=:" %%x in ('findstr /b /l %zahl%: test_n.ini') do set "ausgabe=%%x" 
03.
 
04.
 
05.
IF %zahl% == 2 (echo AnzRec=%rec% >> test.txt) else (echo %ausgabe% >> test.txt)  
06.
 
07.
set /a zahl=%zahl%+1 
08.
IF NOT %zahl% == %zeile% goto while
das muss mit dem ersetzt werden.
01.
:while 
02.
set ausgabe-a=%ausgabe% 
03.
for /f "tokens=2 delims=:" %%x in ('findstr /b /l %zahl%: test_n.ini') do set "ausgabe=%%x" 
04.
 
05.
 
06.
IF "%ausgabe%" == "%ausgabe-a%" (echo. >> test.txt) else (IF %zahl% == 2 (echo AnzRec=%rec% >> test.txt) else (echo %ausgabe% >> test.txt)) 
07.
 
08.
set /a "zahl=%zahl%+1" 
09.
IF NOT %zahl% == %zeile% goto while
Einfach noch ne ausgabe-a für die alte ausgabe eingerichtet, verglichen und wenn die gleich ist einfach ne leerzeile.

Danke Leute ;)
Montag Poste ich hier ma den gesamten Batch.

Mit freundlichen Grüßen
TRMxDEVIL
Bitte warten ..
Mitglied: pumi32
12.07.2008 um 11:22 Uhr
schön helfen zu können TRMxDEVIL

kannst bei der Batch auch dabeischreiben für welche Zwecke sich das ändert (ini-dateien für ein programm oder auch reg-einträge)
evtl überscrift so abändern!
Mit freundlichen Grüßen
pumi32
Bitte warten ..
Mitglied: TRMxDEVIL
14.07.2008 um 13:26 Uhr
Hier mal wie versprochen, der gesamt Batch, auch mit den Richtigen einträgen, so wird der später ablaufen, bei der neu Installation eines Programmes.
Durch den Batch wird ne GDT-Verbindung zwischen den beiden Programmen ermöglicht.

01.
@ECHO off 
02.
 
03.
REM pfad und User eingabe 
04.
 
05.
ECHO. 
06.
:pfadeing 
07.
ECHO DOCcomfort Pfad angeben (z.b) F:\doc2   : 
08.
SET /P pfad= 
09.
 
10.
IF NOT EXIST %pfad% ECHO Der Pfad ist ungültig. & goto pfadeing 
11.
 
12.
ECHO. 
13.
:usereing 
14.
ECHO Bitte den User angeben: 
15.
SET /P user= 
16.
IF NOT EXIST %pfad%\user\%user%\ ECHO Der User existiert nicht. & goto usereing 
17.
 
18.
ECHO. 
19.
 
20.
REM abfragen, ob ein backup vorhanden ist. 
21.
 
22.
IF EXIST %pfad%\user\%user%\degexport.ini.back ( 
23.
	ECHO degexport.ini wurde eventuell schon bearbeitet.  
24.
	ECHO Bitte Löschen Sie falls vorhanden die [VFA] einträge! 
25.
	ECHO Und starten Sie die Autoanbindung neu 
26.
 
27.
REM ping localhost als Wartezeit 
28.
 
29.
	ping localhost /n 6 >nul  
30.
	%pfad%\user\%user%\degexport.ini & del %pfad%\user\%user%\degexport.ini.back & goto dc4j 
31.
	ECHO.) 
32.
 
33.
 
34.
IF EXIST %temp%\degexport.ini DEL %temp%\degexport.ini 
35.
XCOPY %pfad%\user\%user%\degexport.ini %temp% >nul 
36.
IF NOT EXIST %pfad%\user\%user%\degexport.ini.koback REN %pfad%\user\%user%\degexport.ini degexport.ini.koback 
37.
CD %temp% 
38.
 
39.
IF EXIST %pfad%\user\%user%\degexport.ini DEL %pfad%\user\%user%\degexport.ini 
40.
XCOPY degexport.ini %pfad%\user\%user%\ >nul 
41.
REN %pfad%\user\%user%\degexport.ini degexport.ini.back 
42.
 
43.
REM Die GDT einstellungen ans ende von degexport.ini schreiben 
44.
 
45.
ECHO. >> degexport.ini 
46.
ECHO [VFA] >> degexport.ini 
47.
ECHO Titel=VFA >> degexport.ini 
48.
ECHO Exe=C:\Programme\ICW\VFA\Client\CmdLTran.exe /Action:ALLG00 /InputFile=C:\VFA\GDT\VFAin.gdt /OutputFile=C:\VFA\GDT\VFAout.gdt /Start:C:\Programme\ICW\VFA\Client\Icw.Aragon.AragonLight.exe >> degexport.ini 
49.
ECHO CallExe=C:\Programme\ICW\VFA\Client\CmdLTran.exe /Action:ALLG00 /InputFile=C:\VFA\GDT\VFAin.gdt /OutputFile=C:\VFA\GDT\VFAout.gdt /Start:C:\Programme\ICW\VFA\Client\Icw.Aragon.AragonLight.exe >> degexport.ini 
50.
ECHO GDTDatei=C:\VFA\GDT\VFAin.gdt >> degexport.ini 
51.
ECHO PollDir=C:\VFA\GDT >> degexport.ini 
52.
ECHO PollMask=VFAout.gdt >> degexport.ini 
53.
ECHO Satzart=6302 >> degexport.ini 
54.
ECHO Call=6310 >> degexport.ini 
55.
ECHO Typ=VFA >> degexport.ini 
56.
ECHO CallTyp=ALLG00 >> degexport.ini 
57.
ECHO InternePatNr=1 >> degexport.ini 
58.
ECHO UseDOS=0 >> degexport.ini 
59.
ECHO. >> degexport.ini 
60.
 
61.
 
62.
REM Zurück Kopieren 
63.
XCOPY degexport.ini %pfad%\user\%user%\ >nul 
64.
DEL degexport.ini>nul 
65.
 
66.
ECHO Die degexport.ini wurde erfolgreich bearbeitet. 
67.
ECHO Die Orginale degexport.ini ist nun degexport.ini.koback 
68.
ECHO. 
69.
 
70.
REM	DC4J.INI NEU SCHREIBEN BZW BEARBEITEN. 
71.
 
72.
 
73.
:dc4j 
74.
ECHO dc4j.ini wird bearbeitet. 
75.
IF EXIST %pfad%\daten\data\export\dc4j.ini.back ( 
76.
	ECHO DC4J.ini wurde eventuell schon bearbeitet.  
77.
	ECHO Bitte Löschen Sie falls vorhanden die DIR*=C:vfa.. einträge! 
78.
	ECHO Und starten Sie die Autoanbindung neu 
79.
 
80.
REM ping localhost als Wartezeit 
81.
 
82.
	ping localhost /n 6 >nul  
83.
	%pfad%\daten\data\export\dc4j.ini & del %pfad%\daten\data\export\dc4j.ini.back & goto docfest.ini 
84.
	ECHO.) 
85.
 
86.
 
87.
IF NOT EXIST "%pfad%\daten\data\export\dc4j.ini" goto neu 
88.
 
89.
ECHO. 
90.
ECHO dc4jn.ini existiert bereits, wird angepasst. 
91.
 
92.
CD "%temp%" 
93.
 
94.
SET dir="" 
95.
SET ndir="" 
96.
SET var="" 
97.
SET "Quelle=%pfad%\daten\data\export\dc4j.ini" 
98.
SET "TempTxt=%temp%\TT1.txt"  
99.
 
100.
IF EXIST %TempTxt% DEL %TempTxt% >nul 
101.
COPY "%Quelle%" "%TempTxt%">nul  
102.
REN "%Quelle%" dc4j.ini.kocback 
103.
COPY "%TempTxt%" "%pfad%\daten\data\export\">nul 
104.
REN "%pfad%\daten\data\export\tt1.txt" dc4jn.ini.back 
105.
 
106.
 
107.
FOR /f "tokens=1 delims==" %%x in ('FINDSTR "DIR" %TempTxt%') do ( 
108.
SET "dir=%%x") 
109.
ECHO %dir%> dir.txt 
110.
FOR /f "tokens=2 delims=R" %%y in ('FINDSTR "DIR" dir.txt') do SET "var=%%y" 
111.
 
112.
SET dir=%var% 
113.
SET /a ndir="%dir%"+1 
114.
SET "Mark=DIR%dir%="  
115.
SET "Insert=DIR%ndir%=C:\vfa\gdt#*.gdt#100###" 
116.
 
117.
DEL dir.txt 
118.
 
119.
SET Zeile=0  
120.
FOR /f "delims=:" %%i in ('FINDSTR /n /i /b /c:"%Mark%" "%TempTxt%"') do SET Zeile=%%i  
121.
 
122.
IF %Zeile%==0 goto :Rest  
123.
FOR /f "tokens=1* delims=:" %%i in ('FINDSTR /n $ "%TempTxt%"') do if %%i leq %Zeile% ECHO.%%j>>"%Quelle%" 
124.
ECHO %Insert%>>"%Quelle%" 
125.
 
126.
 
127.
:Rest  
128.
MORE +%Zeile% "%TempTxt%">>"%Quelle% 
129.
 
130.
 
131.
:neu 
132.
CD %temp% 
133.
ECHO. 
134.
ECHO dc4j.ini wird komplett geschrieben. 
135.
ECHO [IMPORT] >> dc4j.ini 
136.
ECHO DIR1=c:\vfa\gdt#*.gdt#100### >> dc4j.ini 
137.
ECHO INLINE=TRUE >> dc4j.ini 
138.
ECHO [] >> dc4j.ini 
139.
ECHO INLINE=TRUE >> dc4j.ini 
140.
ECHO PATNREXTERN=FALSE >> dc4j.ini 
141.
ECHO CHECKNAME=FALSE >> dc4j.ini 
142.
ECHO COLLECT=FALSE >> dc4j.ini 
143.
ECHO USEDOS=0 >> dc4j.ini 
144.
ECHO USECRLF=0 >> dc4j.ini 
145.
ECHO KARTEIDATUM=0 >> dc4j.ini 
146.
ECHO ANWENDER= >> dc4j.ini 
147.
ECHO LOOKFOR= >> dc4j.ini 
148.
ECHO RUBRIK= >> dc4j.ini 
149.
ECHO BEFUNDTEXT= >> dc4j.ini 
150.
ECHO PFAD6301= >> dc4j.ini 
151.
ECHO KARTEI= >> dc4j.ini 
152.
 
153.
MD %pfad%\daten\data\export>nul 
154.
MD %pfad%\daten\data\export\Err>nul 
155.
 
156.
COPY dc4j.ini %pfad%\daten\data\export>nul 
157.
DEL dc4j.ini>nul 
158.
ECHO ERSTE DC4J.INI, deswegen kein backup!!! > dc4j.ini.back 
159.
COPY dc4j.ini.back %pfad%\daten\data\export>nul 
160.
ECHO dc4j.ini wurde erfolgreich erstellt. 
161.
 
162.
 
163.
:docfest.ini 
164.
ECHO. 
165.
ECHO docfest.ini wird bearbeitet. 
166.
ECHO. 
167.
 
168.
REM abfragen, ob ein backup vorhanden ist. 
169.
 
170.
IF EXIST %pfad%\user\%user%\docfest.ini.back ( 
171.
	ECHO docfest.ini wurde eventuell schon bearbeitet.  
172.
	ECHO Bitte Löschen Sie falls vorhanden die RecX=Hausarzt einträge! 
173.
	ECHO Und starten Sie die Autoanbindung neu 
174.
 
175.
REM ping localhost als Wartezeit 
176.
 
177.
	ping localhost /n 6 >nul  
178.
	%pfad%\user\%user%\docfest.ini & del %pfad%\user\%user%\docfest.ini.back & goto exit) 
179.
 
180.
SET anzrec= 
181.
SET rec= 
182.
SET "festquelle=%pfad%\user\%user%\docfest.ini" 
183.
SET "festtemptxt=%temp%\docfest.ini"  
184.
 
185.
IF EXIST %festtemptxt% DEL %festtemptxt% 
186.
XCOPY %pfad%\user\%user%\docfest.ini %temp%>nul 
187.
IF NOT EXIST %pfad%\user\%user%\docfest.ini.koback REN %pfad%\user\%user%\docfest.ini docfest.ini.koback>nul 
188.
CD %temp% 
189.
 
190.
XCOPY docfest.ini %pfad%\user\%user%\>nul 
191.
REN %pfad%\user\%user%\docfest.ini docfest.ini.back>nul 
192.
 
193.
FOR /f "tokens=2 delims==" %%x in ('FINDSTR "AnzRec" "docfest.ini"') do SET "anzrec=%%x" 
194.
 
195.
SET rec=%anzrec% 
196.
SET /a rec="%rec%+1" 
197.
SET "festmark=Rec%anzrec%="  
198.
SET "festinsert=Rec%rec%=Hausarzt+, ..\..\prog\wprog\rungdt.exe /k:VFA /s:1" 
199.
 
200.
 
201.
SET festzeile=0  
202.
FOR /f "delims=:" %%i in ('FINDSTR /n /i /b /c:"%festmark%" "%festtemptxt%"') do SET festzeile=%%i  
203.
 
204.
 
205.
IF %festzeile%==0 GOTO :festRest  
206.
FOR /f "tokens=1* delims=:" %%i in ('FINDSTR /n $ "%festtemptxt%"') do IF %%i leq %festzeile% ECHO.%%j>>"%festquelle%" 
207.
ECHO %festinsert%>>"%festquelle%" 
208.
 
209.
:festRest  
210.
MORE +%festzeile% "%festtemptxt%">>"%festquelle%" 
211.
 
212.
FINDSTR /n .* %festquelle% > docfest_n.ini 
213.
 
214.
SET festzeile=0 
215.
SET zahl=1 
216.
SET ausgabe=abc 
217.
 
218.
FOR /f "tokens=1 delims=:" %%i in ('FINDSTR : docfest_n.ini') do SET "festzeile=%%i" 
219.
 
220.
SET /a festzeile=%festzeile%+1 
221.
 
222.
ECHO 
223.
ECHO Wenn mehr als 55 festzeilen angezeigt werden, ist was schief gelaufen xD 
224.
ECHO festzeilen = %festzeile% 
225.
 
226.
:while 
227.
SET "ausgabe-a=%ausgabe%" 
228.
FOR /f "tokens=2 delims=:" %%x in ('FINDSTR /b /l %zahl%: docfest_n.ini') do SET "ausgabe=%%x" 
229.
 
230.
IF "%ausgabe%" == "%ausgabe-a%" (ECHO.  >> ndocfest.ini) else (IF %zahl% == 2 (ECHO AnzRec=%rec% >> ndocfest.ini) else (ECHO %ausgabe% >> ndocfest.ini)) 
231.
 
232.
SET /a "zahl=%zahl%+1" 
233.
IF NOT %zahl% == %festzeile% GOTO while 
234.
 
235.
DEL %pfad%\user\%user%\docfest.ini 
236.
COPY ndocfest.ini %pfad%\user\%user%\docfest.ini>nul 
237.
DEL ndocfest.ini 
238.
 
239.
PING localhost /n 10>nul 
240.
 
241.
:exit 
242.
exit
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

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

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

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

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

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...