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

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, 3455 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
Verschlüsselung & Zertifikate
gelöst Wie funktioniert ein HTTPS Proxy? Ist das zeitgemäß? (4)

Frage von flyingKangaroo zum Thema Verschlüsselung & Zertifikate ...

Batch & Shell
gelöst Powershell - Ausgabe des Codes als Text (9)

Frage von internet2107 zum Thema Batch & Shell ...

Administrator.de Feedback
Upload von Text-Files möglich bzw. sinnvoll? (22)

Frage von em-pie zum Thema Administrator.de Feedback ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
NTFS und die Defragmentierung (26)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (18)

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

Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...