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

Per Batch eine einzelne Zeile eines Textdokuments bearbeiten

Frage Entwicklung Batch & Shell

Mitglied: Verwirrter76

Verwirrter76 (Level 1) - Jetzt verbinden

06.02.2009, aktualisiert 22:15 Uhr, 3462 Aufrufe, 2 Kommentare

Guten Abend,

mein anliegen ist folgendes:

Ich habe hier eine Makefile.
Ich möchte gerne die Zeile 3

01.
 #		DEBUG=y					- Debug build
in

01.
#		DEBUG=n					- Debug build
umwandeln.

Dazu habe ich auch sehr lange und habe folgendes gefunden:
01.
::========================== 
02.
@echo off > newfile 
03.
setLocal EnableDelayedExpansion 
04.
 
05.
for /f "tokens=* delims= " %%a in (Makefile) do ( 
06.
if "%%a"=="#		DEBUG=y					- Debug build" ( 
07.
echo #		DEBUG=n					- Debug build >> newfile 
08.
) else ( 
09.
echo %%a >> newfile 
10.
11.
)
Soweit klappt es auch wunderbar.
Nur habe ich dann das Problem, dass alle leeren Zeilen entfernt werden. Also das es keine Abschnitte mehr gibt.

Ich vermute es liegt daran, dass die Batch die Makefile durchsucht und diese leeren Zeilen entfernt.

Dazu habe ich es auch schon mit SED probiert. Damit habe ich es aber auch nicht geschafft. Mit Windows Boardmitteln fände ich es auch besser.


Nun:
Gibt es einen Weg die Batch so zu gestalten, dass sie nur die 3 Zeile editiert?

Falls es hilft:
Nach langen googlen hatte ich eine Batch gefunden, die eine Zeile löscht. Ich habe schon versucht sie so anzupassen, dass sie die Zeile nicht löscht, sondern editiert, jedoch hat dies nicht funktioniert.

Hier der Code:
01.
@echo off & setlocal 
02.
set "InFile=Makefile" 
03.
set "OutFile=Makefile_new" 
04.
set LineToDelete=7 
05.
 
06.
if exist "%OutFile%" del "%OutFile%" 
07.
for /f "tokens=1* delims=:" %%i in ('findstr /n $ "%InFile%"^|findstr /b "%LineToDelete%:"') do findstr /v /b /c:"%%j" "%InFile%">>"%OutFile%"
Ich hoffe ich habe mich verständlich ausgedrückt. Hoffentlich könnt ihr mir bei meinen Problem weiterhelfen.
Es tut mir Leid, wenn ich euch mit meiner Frage nerve, aber so langsam bin ich hier am verzweifeln.

Mit freundlichen Grüßen
Mitglied: bastla
06.02.2009 um 22:29 Uhr
Hallo Verwirrter76!

Versuch es so:
01.
@echo off & setlocal 
02.
set "Old=Makefile" 
03.
set "New=newfile" 
04.
 
05.
if exist "%New%" del "%New%" 
06.
for /f "tokens=1* delims=:" %%a in ('findstr /n "^" "%Old%"') do ( 
07.
    if "%%b"=="#		DEBUG=y					- Debug build" ( 
08.
        >>"%New%" echo #		DEBUG=n					- Debug build 
09.
    ) else ( 
10.
        >>"%New%" echo\%%b 
11.
12.
)
Grüße
bastla
Bitte warten ..
Mitglied: Verwirrter76
06.02.2009 um 22:34 Uhr
Ich danke dir!
Hat sofort geklappt.

Ein super Forum ist das hier! Macht weiter so!
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...