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

bestimmte Zeile in einer Datei ändern

Frage Entwicklung Batch & Shell

Mitglied: Munsi1

Munsi1 (Level 1) - Jetzt verbinden

23.11.2007, aktualisiert 26.11.2007, 5165 Aufrufe, 3 Kommentare

Hallo,

ich möchte eine ini Datei automatisch per batch ändern. Folgender Hintergrund, in unserer Firma gibt es mehrer Rechner mit einem speziellen Programm. Dieses Programm benötig eine ini Datei in der der Rechnername an einer bestimmten Stelle steht. Jetzt muß die ini Datei aber angepasst werden und ich möchte per batch den Namen aus der alten Datei auslesen und in die neue ini Datei schreiben. Leider komme ich nicht so wirklich weiter. Der Rechnername wird immer nur an das Ende der Datei geschrieben.
01.
 
02.
@echo on & setlocal 
03.
set "Ein=C:\Programme\Programm\netz.ini.bak" 
04.
set "Aus=C:\Programme\Programm\netz.ini" 
05.
 
06.
rem if exist "%Aus%" del "%Aus%" 
07.
set Zuletzt=- 
08.
for /f "tokens=*" %%i in ('findstr "Datasource" "%Ein%"') do call :ProcessLink "%%~i" 
09.
goto :eof 
10.
 
11.
:ProcessLink 
12.
if %1==%Zuletzt% goto :eof 
13.
set Zuletzt="%~1" 
14.
(echo %~1)>>"%Aus%" 
15.
 
Es soll die Zeile Datasource=Rechnername geändert werde. Vielleicht hat einer von euch eine Idee wie ich das realisieren kann.
Vielen Dank.

Grüße
Sebastian
Mitglied: bastla
23.11.2007 um 15:55 Uhr
Hallo Munsi1 und willkommen im Forum!

Für "Ersetz"-Operationen ist Batch nicht wirklich das optimale Werkzeug - besser geeignet wären Tools wie zB "sed" oder zumindest ein VBScript, etwa:
01.
Const Source = "C:\Programme\Programm\netz.ini.bak" 
02.
Const Target = "C:\Programme\Programm\netz.ini" 
03.
Const Key = "Datasource" 
04.
'Rechnernamen als neuen Wert festlegen 
05.
Value = WScript.CreateObject("WScript.Network").Computername 
06.
 
07.
Set fso = CreateObject("Scripting.FileSystemObject") 
08.
Text = Split(fso.OpenTextFile(Source, 1).ReadAll, vbCrLF) 
09.
Anzahl = UBound(Text) 
10.
L = Len(Key) 
11.
For i = 0 To Anzahl 
12.
	If Left(Text(i), L) = Key Then 
13.
		Text(i) = Key & "=" & Value 
14.
		Exit For 
15.
	End If 
16.
Next 
17.
fso.OpenTextFile(Target, 2, True).Write Join(Text, vbCrLF)
Grüße
bastla

[Edit] Variable "Value" für neu einzutragenden Wert hinzugefügt. [/Edit]
Bitte warten ..
Mitglied: Munsi1
23.11.2007 um 19:21 Uhr
Hallo bastla,

danke für den Tip aber es muß ohne Tools gehen denn die Anwender haben nur einen Standartrechner. Mit VBScript kenne ich mich nicht so aus. Werde am Montag mal dein Script probieren da ich zuhause leider die Datei nicht habe (habe sie in der Firma vergessen )
Melde mich am Montag wieder.

Danke noch mal und schönes Wochenende
Sebastian
Bitte warten ..
Mitglied: Munsi1
26.11.2007 um 12:32 Uhr
Hallo bastla,

so habe es jetzt ausprobiert. Damit geht es super.
Danke

Sebastian
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmte Zeile einer Textdatei mit Batch auslesen (2)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

VB for Applications
gelöst Per Vbscript bestimmte Zeile ungeachtet der Nummerierung prüfen (7)

Frage von aletri zum Thema VB for Applications ...

VB for Applications
gelöst Vbscript bestimmte Zeile ungeachtet der Nummerierung löschen (4)

Frage von aletri zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(40)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (10)

Frage von keine-ahnung zum Thema Exchange Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (8)

Frage von ahaeuser zum Thema Windows Server ...