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

Über eine Batch datei etwas in die 4. Zeile einer Textdatei schreiben

Frage Entwicklung Batch & Shell

Mitglied: Bjoern909

Bjoern909 (Level 1) - Jetzt verbinden

01.02.2008, aktualisiert 02.02.2008, 7512 Aufrufe, 11 Kommentare

Hallo Batch spezialisten,

Ich bin gerade dabei eine Batch datei zu schreiben doch ich hänge an einem Problem. Wie gebe ich eine Batch datei den Befehl etwas in die 4. Zeile einer Textdatei zu schreiben?

WÜrde mich über eine schnelle Antwort freuen und sage schon mal im Vorraus danke.
Mitglied: miniversum
01.02.2008 um 11:02 Uhr
Soll den die 4. Zeile die schon in der Textdatei drinsteht dan überschreiben werden oder soll eine Zeile nach der 3. Zeile eingefügt werden?
Bitte warten ..
Mitglied: Bjoern909
01.02.2008 um 11:15 Uhr
Es soll eine Neue Zeile nach der 4. Zeile eingefügt werde und dort soll dann der Text rein.
Bitte warten ..
Mitglied: Bjoern909
01.02.2008 um 11:29 Uhr
und noch eine Frage: Wie kann ich eine Bestimmte zeile, also ein Wort oder auch einen Satz einer Text datei, als Variable in einer anderen batch datei einsetzen?

MfG Bjoern
Bitte warten ..
Mitglied: bastla
01.02.2008 um 15:14 Uhr
Hallo Bjoern909 und willkommen im Forum!

Mit dem folgenden Batch wird die angegebene Zeile als neue Zeile 4 eingefügt - solltest Du nach der Zeile 4 einfügen wollen (Deine diesbezüglichen Aussagen sind nicht eindeutig), musst Du nur die Zeile "set Z=1" durch "set Z=0" ersetzen:
01.
@echo off & setlocal 
02.
set "Datei=D:\DeineDatei.txt" 
03.
set EinfZeile=4 
04.
set "NeueZeile=Zeileninhalt der neuen Zeile" 
05.
 
06.
set "Bak=%Datei%.bak" 
07.
move "%Datei%" "%Bak%" 
08.
set Z=1 
09.
for /f "usebackq delims=" %%i in ("%Bak%") do set "Zeile=%%i" & call :ProcessLine 
10.
goto :eof 
11.
 
12.
:ProcessLine 
13.
if %Z% neq %EinfZeile% goto :SchreibeZeile 
14.
echo %NeueZeile%>>"%Datei%" 
15.
 
16.
:SchreibeZeile 
17.
echo %Zeile%>>"%Datei%" 
18.
set /a Z+=1
Die ursprüngliche Textdatei bleibt als Sicherungskopie (mit dem Zusatz ".bak") erhalten - falls Du das nicht willst, füge die Zeile
01.
del "%Bak%"
vor der Zeile "goto :eof" ein.
Zu Deiner anderen Frage: Wodurch wird die "bestimmte Zeile" bestimmt, und wie ist dann das gesuchte Wort zu erkennen?

Grüße
bastla
Bitte warten ..
Mitglied: Bjoern909
01.02.2008 um 16:06 Uhr
ich habe eine 1. Batch datei die eine Batchdatei 2 aufruft. in dieser 2. batch datei ist dann in der 1. Zeile ein Name. Dieser ist jedoch unbekannt. Diesen möchte ich dann in Batch 1. als variable %nb% haben. Ist das mögglich?

nochmals danke für die schnelle Antwort auf Frage 1.
Bitte warten ..
Mitglied: Bjoern909
01.02.2008 um 16:15 Uhr
funktioniert der Code für Frage 1 auch für Batch dateien? Irgendwie erstellt der dann eine bak datei. Was ist das und was soll das bringen?
Bitte warten ..
Mitglied: bastla
01.02.2008 um 16:15 Uhr
Hallo Bjoern909!

in dieser 2. batch datei ist dann in der 1. Zeile ein Name.
Du kannst die gesamte erste Zeile so einlesen:
01.
set /p ErsteZeile=<Batch2.bat
Mehr kann ich Dir, ohne dass Du diese Zeile bzw das Kriterium zum Auffinden des Namens näher beschreibst, nicht anbieten ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
01.02.2008 um 16:21 Uhr
funktioniert der Code für Frage 1 auch für Batch dateien?
Grundsätzlich für alle Textdateien, daher: ja.
Irgendwie erstellt der dann eine bak datei. Was ist das ...
... eine Sicherungskopie (Textdatei vor dem Einfügen der Zeile)
... und was soll das bringen?
Sicherheit

Ansonsten magst Du ja vielleicht oben nochmals nachlesen, wie Du diese Kopie einfach wieder los wirst ...

Grüße
bastla
Bitte warten ..
Mitglied: Bjoern909
01.02.2008 um 16:25 Uhr
okay trotzdem danke für die Hilfe

MfG Bjoern
Bitte warten ..
Mitglied: Bjoern909
02.02.2008 um 14:40 Uhr
Ach und beinahe hätt ich es vergessen:
Was muss ich machen wenn ich in die 4. Zeile etwas reinschreiben will und dort schon ein Befehl steht, den ich jedoch entfernen möchte?

Also so:

@echo off
echo hallo
echo ich bins
Echo wie gehts?
pause >NUL

nach dem ausführen der Batch datei steht da dann:

@echo off
echo Hallo
echo ich bins
Echo Testsatz
pause >NUL

Also das war jetzt nur so als Besipiel genommen. natürlich stehen da ganz andere sachen.
Geht das irgendwie?
Bitte warten ..
Mitglied: bastla
02.02.2008 um 16:58 Uhr
Hallo Bjoern909!

Um die Zeile 4 zu ersetzen:
01.
@echo off & setlocal 
02.
set "Datei=D:\DeineDatei.txt" 
03.
set EinfZeile=4 
04.
set "NeueZeile=Zeileninhalt der neuen Zeile" 
05.
 
06.
set "Bak=%Datei%.bak" 
07.
move "%Datei%" "%Bak%" 
08.
set Z=1 
09.
for /f "usebackq delims=" %%i in ("%Bak%") do set "Zeile=%%i" & call :ProcessLine 
10.
goto :eof 
11.
 
12.
:ProcessLine 
13.
if %Z% neq %EinfZeile% (echo %Zeile%>>"%Datei%") else echo %NeueZeile%>>"%Datei%" 
14.
set /a Z+=1
Nochmals zu
in dieser 2. batch datei ist dann in der 1. Zeile ein Name.
Falls Du mich missverstanden haben solltest: Es ist nicht so, dass ich Dir nicht helfen wollte, sondern dass ich es ohne zusätzliche Informationen über diese Zeile nicht kann.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(4)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...