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, 3435 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 ..
Neuester Wissensbeitrag
Router & Routing

192.168er Adresse im öffentlichen Netz

(2)

Erfahrungsbericht von visco-c zum Thema Router & Routing ...

Ähnliche Inhalte
Windows 10
Windows 10 Update funktioniert nicht (5)

Frage von master3477 zum Thema Windows 10 ...

MikroTik RouterOS
gelöst Mikrotik externe SD Card funktioniert nicht (9)

Frage von sebasscha zum Thema MikroTik RouterOS ...

Router & Routing
gelöst WOL über zwei Router - Ping funktioniert nicht (3)

Frage von erdmelone zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Zusammenarbeit
Als Administrator im Großraumbüro (29)

Frage von Dopamin85 zum Thema Zusammenarbeit ...

Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (22)

Frage von Driphex zum Thema Exchange Server ...

Hyper-V
HYPER V und USB (16)

Frage von Hendrik2586 zum Thema Hyper-V ...

SAN, NAS, DAS
Backupserver für KMU (14)

Frage von Leo-le zum Thema SAN, NAS, DAS ...