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, 3464 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.

MFG
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
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
Batch & Shell
gelöst Mittels Batch jede Zeile einer Textdatei prüfen (4)

Frage von Peter32 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch : alle Dateien eines Ordners bearbeiten (1)

Frage von deguonkel zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Windows Server
SBS 2011 Standard virtualisieren (13)

Frage von HeinrichM zum Thema Windows Server ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...