Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Text verändern funktioniert, aber Leerzeilen und Kommentare verschwinden

Frage Entwicklung Batch & Shell

Mitglied: 42583

42583 (Level 1)

26.09.2007, aktualisiert 27.09.2007, 3479 Aufrufe, 3 Kommentare

Habe eine *.ini Datei, die ich per Script ändern möchte. Habe hier nach "Text ändern/austauschen" gesucht und das Passende gefunden. Es wird mittels FOR Schleife ausgelesen und in dem neuen Dokument die Wunschdaten eingetragen. Klappt auch wunderbar. Nur werden die Leerzeilen und die Zeilen, die mit ";" anfangen weggelassen, werden einfach übersehen. Das ist mir schon vorher aufgefallen, aber bei dieser Datei ist es wirklich ein Problem, da die Formatierung der *.ini Datei erhalten bleiben sollte.
Jemand eine Idee?
Mitglied: Biber
26.09.2007 um 09:37 Uhr
Moin gunnar-hro,

die FOR/F- Anweisung ignoriert Leerzeilen. Immer.
Die ";"-Zeilen musst Du selbst unterdrückt haben durch den Parameter "EOL=;"

Wenn Du auch die Leerzeilen erhalten willst, dann musst Du die INI-Datei mt einem "FIND /n" oder "FindStr /n" -Befehl inclusive Leerzeilen lesen.

Bitte poste das, was Du bisher hast plus eine (beispielhafte) INI-Datei.
Dann ist es für alle MitleserInnen nachvollziehbarer, wovon wir grad reden.

Grüße
Biber
Bitte warten ..
Mitglied: 42583
26.09.2007 um 19:02 Uhr
Wenn ich in der Firma bin gerne, aber heute hab ich noch meinen Urlaubstag ;) Aber eol hab ich nicht verwendet, da bin ich mir sicher und "gescipt" hab ich auch nichts. Na ja mal schauen, werde es dann jedenfalls posten, damits hier auch andere nachlesen können. Jedenfalls schönen Dank für die Infos. So, werde jetzt erstmal abgrillen gehen ;)
Bitte warten ..
Mitglied: 42583
27.09.2007 um 09:01 Uhr
Anbei das Script:
REG QUERY HKCU\Printers\DevModePerUser /s>C:\temp1.txt
for /f "skip=2 tokens=1,2 delims=:" %%i in (C:\temp1.txt) do (
echo %%j>>C:\temp2.txt
)

for /f "tokens=1,2 delims= " %%i in (C:\temp2.txt) do (
set "snr=%%i"
)
del C:\temp1.txt
del C:\temp2.txt
del C:\temp3.txt

set "pcname=PC 123"


echo HP LaserJet 9999 (von %pcname%) in Sitzung: >C:\nachher1.txt
for /f "usebackq delims=" %%r in (C:\nachher1.txt) do (
echo %%r%snr%>nachher2.txt
)

for /f "usebackq delims=" %%s in (C:\nachher2.txt) do (
set Nach=%%s
)

setlocal enabledelayedexpansion
set "Datei=C:\meso.ini"
set "Von=HP LaserJet 2200"
set "t=%temp%\text.tmp"
if exist "%t%" del "%t%"


for /f "usebackq delims=" %%i in ("%Datei%") do (
set "Line=%%i"
set "Line=!Line:%Von%=%Nach%!"
echo !Line!>>"%t%"
)
move /y "%t%" "%Datei%"
del C:\nachher1.txt
del C:\nachher2.txt

Werde wohl die Zeilen per findstr auflisten, wo Leerzeilen drin sind und dann mittels einer zweiten Variable errechnen lassen, wo eine Leerzeile hinkommt und das mit einem "Echo." tun oder?! . Das könnte ich ja in der Schleife mit einem Unterprogramm tun?!
Bitte warten ..
Ähnliche Inhalte
Linux Tools
gelöst Mit Linux am ende einer Datei eine Leerzeile einfügen (30)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Linux Tools ...

Festplatten, SSD, Raid
Kommentar: SSDs werden Festplatten nicht ablösen (6)

Information von Penny.Cilin zum Thema Festplatten, SSD, Raid ...

Microsoft Office
gelöst Kommentare in Visio Viewer (6)

Frage von sardldb zum Thema Microsoft Office ...

Administrator.de Feedback
gelöst Scoreboard Kommentare Wann erscheint der registrierte User ? (2)

Frage von holli.zimmi zum Thema Administrator.de Feedback ...

Neue Wissensbeiträge
Windows 10

Heise Newsticker: Microsoft veröffentlicht das "Fall Creators Update

(8)

Information von Penny.Cilin zum Thema Windows 10 ...

LAN, WAN, Wireless

Schwachstelle im WPA2 Protokoll veröffentlicht

(3)

Information von colinardo zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (20)

Frage von sunics zum Thema Hosting & Housing ...

Windows 7
gelöst Windows 7 Anmeldedomäne festlegen (13)

Frage von flotaut zum Thema Windows 7 ...