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

Batch Problem, Suchen und Ersetzen in einer ini-Datei

Frage Entwicklung Batch & Shell

Mitglied: ufo2012

ufo2012 (Level 1) - Jetzt verbinden

05.08.2008, aktualisiert 14:08 Uhr, 8272 Aufrufe, 6 Kommentare

Hallo,

ich habe mich schon seit gestern durch das Forum durchgegraben, habe auch viele hinweise gefunden, nur fehlt mir noch ein kleiner Hinweis, um das Problem zu lösen.

Ich möchte gerne in einer ini-Datei eine komplette zeile löschen und durch eine neue ersetzen. Soll so ausschauen:

vorher:
[Notes]
DominoResLang=de
Directory=C:\Lotus\Notes
KitType=1
InstallType=2
WinNTIconPath=C:\Lotus\Notes\Data\W32
Timezone=-1


nachher:
[Notes]
DominoResLang=de
Directory=C:\Dokumente und Einstellungen\%username%\Eigene Dateien
KitType=1
InstallType=2
WinNTIconPath=C:\Lotus\Notes\Data\W32
Timezone=-1

ich habe jetzt schon herausgefunden wie man (leider) beide Zeilen ändert.
durch:




@echo off & setlocal enabledelayedexpansion

set "Datei=c:\test.ini"
set "Directory=C:\Lotus\Notes"
set "Nach=c:\Dokumente und Einstellungen\%username%\Eigene Dateien"
set "t=%temp%\text.tmp"


if exist "%t%" del "%t%"
for /f "delims=" %%i in ('findstr /n $ "%Datei%"') do set "Line=%%i" & call :ProcessLine

move "%t%" "%Datei%"

goto :eof

:ProcessLine
for /f "tokens=1* delims=:" %%a in ("%Line%") do set "L=%%b"
if not defined L >>"%t%" echo\& goto :eof
>>"%t%" echo !L:%Directory%=%Nach%!

goto :eof

Am liebsten würde ich gerne die Zeile "set "Directory=C:\Lotus\Notes" " so schreiben, leider funktioniert das dann nicht

"set "Von=Directory=C:\Lotus\Notes" "



grüßle

ufo2012
Mitglied: bastla
05.08.2008 um 11:44 Uhr
Hallo ufo2012!

Hier sollte (das für die Verarbeitung von Text besser geeignete) VBScript zusätzlich verwendet werden (auch, wenn es weiterhin ein Batch bleibt):
01.
@echo off & setlocal 
02.
 
03.
set "Datei=C:\test.ini" 
04.
set "Von=Directory=C:\Lotus\Notes" 
05.
set "Nach=Directory=c:\Dokumente und Einstellungen\%%username%%\Eigene Dateien" 
06.
 
07.
set "R=%temp%\Repl.vbs" 
08.
> %R% echo Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile("%Datei%").ReadAll:fso.CreateTextFile("%Datei%",True).Write Replace(T,"%Von%","%Nach%") 
09.
 
10.
cscript //nologo %R%
Bitte beachten: Wenn die Variable %username% nicht aufgelöst werden soll, muss sie mit doppelten Prozentzeichen geschrieben werden.

Grüße
bastla
Bitte warten ..
Mitglied: ufo2012
05.08.2008 um 12:33 Uhr
Hallo bastla,

danke für die schnelle Antwort, aber funktioniert leider nicht.


Fehlermeldung:
"Input-Fehler: Für die Dateierweiterung ".vbs@echo" gibt es kein Skriptmodul.
FINDSTR: /c wurde ignoriert"


und der Inhalt schaut dann so aus:


"

\Lotus\Notes


\Lotus\Notes\Data\W32

"

Kann es seien, da ich noch Win2000 verwende, dass dies Probleme bereitet?

grüßle

ufo2012
Bitte warten ..
Mitglied: bastla
05.08.2008 um 12:40 Uhr
Hallo ufo2012!

Nur zur Sicherheit: Der von mir gepostete Batch ist eigenständig zu verwenden und nicht mit dem ersten Batch zu kombinieren ...

Grüße
bastla
Bitte warten ..
Mitglied: ufo2012
05.08.2008 um 12:54 Uhr
Hallo bastla,

stimmt, ich habe es in die bestehende batchdatei hineinkopiert.

Soweit, so gut, ich habe jetzt ein bißchen hin und her probiert, aber

leider ändert sich gar nichts. (oder ich übersehe etwas)


grüßle

ufo2012
Bitte warten ..
Mitglied: bastla
05.08.2008 um 13:09 Uhr
Hallo ufo2012!

Mit den von Dir geposteten Testdaten klappt es bei mir ...

Um Groß-/Kleinschreibung der zu ersetzenden Zeile als Fehlerquelle auszuschließen, verwende bitte als Ersatz für die Zeile 8:
01.
> %R% echo Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile("%Datei%").ReadAll:fso.CreateTextFile("%Datei%",True).Write Replace(T,"%Von%","%Nach%",1,-1,1)
Wenn Du außerdem (nur zum Testen) in der ersten Zeile "echo off" durch "echo on" ersetzt und den Batch von der Kommandozeile startest, kannst Du den Ablauf nachvollziehen.

Grüße
bastla
Bitte warten ..
Mitglied: ufo2012
05.08.2008 um 14:08 Uhr
Hi bastla,

Ja es klappt, tausend Danke dafür. Erspart mir sehr viel arbeit.

Danke nochmals


grüßle

ufo2012
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch - IF - mehr als eine Datei eines bestimmten Typs (9)

Frage von zimbosmurf zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen ersetzen mit Sonderzeichen (2)

Frage von GNLen1 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

Frage von Brotkasten zum Thema Festplatten, SSD, Raid ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

Ubuntu
Nextcloud 12 Antivirus App for Files (8)

Frage von horstvogel zum Thema Ubuntu ...

Server-Hardware
gelöst Empfehlung KVM over IP Switch (8)

Frage von Androxin zum Thema Server-Hardware ...