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

Batch - Inhalt einer .txt verändern - Bitte um Steinigung

Frage Entwicklung Batch & Shell

Mitglied: Nollosch

Nollosch (Level 1) - Jetzt verbinden

04.11.2011, aktualisiert 18.10.2012, 3503 Aufrufe, 6 Kommentare

Ich dachte es wäre schnell gemacht, aber ich lese und lese, schnall es aber einfach nicht.

Hallo Administratoren.

Ich habe folgende Themen durchforstet ...
Thema 1
Thema 2
Thema 3
Thema 4
Thema 5

... komme aber nicht auf die Lösung.

Ich habe eine .txt Datei (bzw. ini) mit mehreren Zeilen Text.

In dem Text gibt es ein Schlüsselwort das einmalig vorhanden ist. Dieses will ich ändern (in diesem Falle das aktuelle Datum anhängen) und die Datei wieder speichern.
Aktives Ändern wird nicht funktionieren, also temporär speichern und dann verschieben bzw umbenennen (dies traue ich mir zu).

Ich habe bisher die Zeile mit dem Schlüsselwort ausgelesen, geändert und abgespeichert. Aber wie schaffe bekomme ich den anderen unveränderten Text in die ping_ausgabe.txt?
Ich will also nur eine kleine Änderung (eine Zeile bzw würde auch die gesuchte Passage (asus) reichen) vornehmen + den restlichen Inhalt der Datei (restlichen Zeilen) einfach übernehmen.

01.
@echo off & setlocal enableDelayedExpansion 
02.
 
03.
:: setze Zeit 
04.
set date=%date% 
05.
set yaer=%date:~8,4% 
06.
FOR /F "tokens=1,2,3 delims=/. " %%a in ('date /t') do set CDATE=%%b%%a 
07.
 
08.
:: suche Schlüsselwort 
09.
for /F "delims=" %%i in ('findstr asus C:\123456789\ping.txt') do set "Line=%%i 
10.
::speichere Änderung 
11.
echo %Line%_%yaer%%CDATE% >>C:\123456789\ping_ausgabe.txt 
12.
  
13.
::verzweifle ... 
14.
 
15.
::temporäre Datei in Finale Datei umbenennen und an Zielort kopieren 
16.
move /y C:\123456789\ping_ausgabe.txt c:\Finaler_Ort\ping.ini
In den Themen die ich verlinkt habe, scheint die Antwort zu stehen, ich kann sie aber einfach nicht sehen oder verstehen.

Bitte um Hilfe ...
Mitglied: Skyemugen
04.11.2011, aktualisiert 18.10.2012
Aloha,

nun, eventuell gefällt dir auch dieses Thema in dem es auch nur darum geht ein bestimmtes Wort gegen ein anderes zu ersetzen

set "Von=Schluesselwort"
set "Nach=%Von%_%date%"

oder statt Von eben Alt und statt Nach eben Neu der Rest ist c&p ...

greetz André
Bitte warten ..
Mitglied: miniversum
04.11.2011 um 16:05 Uhr
Jetzt ohne die verlinkten Beiträge gelesen zu haben funktioniert das ganze prinzipiell so:

1. Zeilennummer der zu ändernden Zeile herausfinden. Das geht z.B. über den Parameter /n des findstr Befehls.
2. Alles vor dieser Zeile in eine temponäre Datei schreiben (wieder Findstr mit parameter /N /R .* (so ungefär)
3. Die zu ändernde zeile ändern und an die temponäre Datei anhängen
4. Den Rest an die temponäre datei anhängen. Z.B. über der Befehl more +x
Bitte warten ..
Mitglied: Nollosch
05.11.2011 um 22:10 Uhr
@Skyemugen

Ich könnt dich knutschen.

Ich hab jetzt zwar nicht analysiert, was an dem Code anders ist als bei meinen Themen, aber dieses mal hab ich es teilsweise verstanden.

Ich muss mich dem Thema echt mal mehr annehmen.

Danke für den Thread-Link

@miniversum
die Theorie hab ich drauf, an der Umsetzung und den Codekenntnissen hapert es mir letztlich.

Trotzdem danke


Meinen kompletten Code poste ich demnächst dann hier.
Bitte warten ..
Mitglied: Nollosch
07.11.2011 um 13:50 Uhr
Hier der versprochene Code.


01.
@echo on & setlocal 
02.
mode 133,88 
03.
 
04.
set date=%date% 
05.
set yaer=%date:~8,4% 
06.
FOR /F "tokens=1,2,3 delims=/. " %%a in ('date /t') do set CDATE=%%b%%a 
07.
 
08.
set "Ausgangsdatei=.\Text.txt" 
09.
set "Von=Suchtext" 
10.
set "Nach=Neuer-Text+Datum_%yaer%%CDATE%.txt" 
11.
set "t=.\Text_NEU.txt" 
12.
 
13.
if exist "%t%" del "%t%" 
14.
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%Ausgangsdatei%"') do set "Line=%%j" & call :ProcessLine 
15.
goto :eof 
16.
 
17.
:ProcessLine 
18.
setlocal enabledelayedexpansion 
19.
(if defined Line (echo !Line:%Von%=%Nach%!) else (echo())>>"%t%" 
20.
endlocal 
21.
 
22.
goto :eof

Funktioniert so tadellos.

Danke nochmal für die Hilfe

P.S. Wenn ich die goto :eof ändere z.B. in goto :zwischenschritt um noch etwas kleines einzufügen, stürzt die .bat sang und klanglos ab.
Kann man in einem Satz sagen wieso das so ist? Ich verstehe eof als "mach Schluss" wenn Fall nicht zutreffend.
Bitte warten ..
Mitglied: Skyemugen
07.11.2011 um 15:07 Uhr
Aloha,

erst einmal: set date=%date% == sinnfrei?
und dann set yaer=%date:~8,4% == year und die Frage 8 Stellen überspringen (von 10) und 4 Stellen anzeigen? ... ergibt 2 vorhandene Stellen dennoch nur ... == set year=%date:~-2%
Dann
Wenn ich die goto :eof ändere
beide? Au weia, das zweite goto :eof sorgt dafür, dass es zurück zur Hauptablauf (Schleife) geht ... was du aus dem ersten goto :eof machst, ist dir überlassen, solange es zu einem Ziel nach Zeile 22 führt.

greetz André
Bitte warten ..
Mitglied: Nollosch
10.11.2011 um 16:15 Uhr
Zitat von Skyemugen:
erst einmal: set date=%date% == sinnfrei?
hast Recht .. ein Überbleibsel ... irgendwas wollt ich daraus noch machen
und dann set yaer=%date:~8,4% == year und die Frage 8 Stellen überspringen (von 10) und 4 Stellen anzeigen? ...
ergibt 2 vorhandene Stellen dennoch nur ... == set year=%date:~-2%
Da war ich wohl etwas großzügig ... hinten raus 8,2 reicht natürlich auch
> Wenn ich die goto :eof ändere
beide? Au weia, das zweite goto :eof sorgt dafür, dass es zurück zur Hauptablauf (Schleife) geht ... was du aus dem
ersten goto :eof machst, ist dir überlassen, solange es zu einem Ziel nach Zeile 22 führt.
Fehler erkannt und gebannt.

Großen Dank nochmal!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Mittels Batch alle .txt Dateien eines Verzeichnises ändern (10)

Frage von mttspeedy zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
CMD-Batch hilfe: Dateiname zu txt (2)

Frage von Syscore64 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...