59769
21.01.2008, aktualisiert am 20.01.2012
10424
3
0
Mittels Batch an bestimmte Stelle der win.ini schreiben
Ich möchte mittels Batch eine neue Zeile mit Text in der win.ini einfügen.
Der neue Text müsste immer unter demselben Eintrag stehen.
Irgendwo in meiner win.ini steht inipath=c:\programme\test\test.ini
und unter dieser Zeile möchte ich den Eintrag; winword=1 schreiben.
Kenne mich mit Batches nicht so aus...hoffe jemand kann mir einen Tip geben.
Der neue Text müsste immer unter demselben Eintrag stehen.
Irgendwo in meiner win.ini steht inipath=c:\programme\test\test.ini
und unter dieser Zeile möchte ich den Eintrag; winword=1 schreiben.
Kenne mich mit Batches nicht so aus...hoffe jemand kann mir einen Tip geben.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 78739
Url: https://administrator.de/contentid/78739
Ausgedruckt am: 26.11.2024 um 20:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Muecke,
mit Batch kann ich dir nicht dienen, Sorry.
Wenn's auch VBs sein darf.
Hier ein Script, mit dem CapiFax für servergespeicherte Profile angepasst wurde.
Es sucht in der win.ini eine Zeile die mit WorkDir=\\<server>\CapiFax\ beginnt und ergänzt sie zu WorkDir=\\<server>\CapiFax\<username>.CLT
HTH,
gemini
mit Batch kann ich dir nicht dienen, Sorry.
Wenn's auch VBs sein darf.
Hier ein Script, mit dem CapiFax für servergespeicherte Profile angepasst wurde.
Es sucht in der win.ini eine Zeile die mit WorkDir=\\<server>\CapiFax\ beginnt und ergänzt sie zu WorkDir=\\<server>\CapiFax\<username>.CLT
Option Explicit
Dim objFSO, objWshNetwork, objFile
Dim strWorkDir, strText, strLine, strPathFind, strExt
Const ForReading = 1, ForWriting = 2, ForAppending = 8
strWorkDir = "C:\Windows\win.ini"
strText = ""
strPathFind = LCase("WorkDir=\\<server>\CapiFax\")
strExt = ".CLT\"
Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strWorkDir) Then
Set objFile = objFSO.OpenTextFile(strWorkDir, ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
If Left(LCase(strLine), Len(strPathFind)) = strPathFind Then
Set objWshNetwork = Wscript.CreateObject("WScript.Network")
strLine = strPathFind & objWshNetwork.UserName & strExt
End If
strText = strText & strLine & vbCrLf
Loop
objFile.Close
Else
MsgBox "Die Datei " & strWorkDir & " wurde nicht gefunden."
End If
Set objFile = objFSO.OpenTextFile(strWorkDir, ForWriting)
objFile.Write strText
objFile.Close
strWorkDir = ""
strText = ""
strLine = ""
strPathFind = ""
strExt = ""
HTH,
gemini
@gemini
Schöne Lösung ...
@59769
Wenn's doch Batch sein soll:
Sollte etwas schiefgegangen sein, liegt die ursprüngliche "win.ini" noch als "%temp%\TT.txt" vor.
Grüße
bastla
Schöne Lösung ...
@59769
Wenn's doch Batch sein soll:
@echo off & setlocal
set "Quelle=%windir%\win.ini"
set "Mark=inipath=c:\programme\test\test.ini"
set "Insert=; winword=1"
set "TempTxt=%temp%\TT.txt"
copy "%Quelle%" "%TempTxt%">nul
set Zeile=0
for /f "delims=:" %%i in ('findstr /n /i /b /c:"%Mark%" "%TempTxt%"') do set Zeile=%%i
del "%Quelle%"
if %Zeile%==0 goto :Rest
for /f "tokens=1* delims=:" %%i in ('findstr /n $ "%TempTxt%"') do if %%i leq %Zeile% echo.%%j>>"%Quelle%"
echo %Insert%>>"%Quelle%"
:Rest
more +%Zeile% "%TempTxt%">>"%Quelle%"
Grüße
bastla