Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: Nollosch

Nollosch (Level 1) - Jetzt verbinden

04.11.2011, aktualisiert 18.10.2012, 3585 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 ..
Ähnliche Inhalte
Batch & Shell

Inhalt einer .txt als eine Variable setzen mit Batch

gelöst Frage von AlexIOTBatch & Shell3 Kommentare

Hallo Zusammen, In der Variable.txt steht immer nur ein einziger Rechnername! - wie folgt: EW085IDFV001 Ich möchte das dieser ...

Batch & Shell

Txt Inhalt in batch variabel verwenden

gelöst Frage von quan81Batch & Shell17 Kommentare

Liebes Forum ich bin neu dabei und freu mich wenn mir jemand helfen kann. Ich versuche per .bat file ...

Batch & Shell

Txt datei veränden - "steuerung" für VirtualBox

gelöst Frage von AngryDadBatch & Shell7 Kommentare

Hallo zusammen! Möchte eine .bat schreiben mit der ich meine VM´s steuern kann. Hab es schon geschafft die Liste ...

Batch & Shell

Dateinamen einer ausgeführten Batch verändern

Frage von DD-GamerBatch & Shell5 Kommentare

Hallo, ich möchte den Dateinamen der auszuführenden .bat um eins erhöhen nachdem ich sie ausgeführt habe. Das würde dann ...

Neue Wissensbeiträge
Windows 10

Blackscreen nach dem Update von 1908 auf 1809 wenn der Rechner aus dem Standby gestartet wird

Tipp von FSX2010 vor 11 StundenWindows 103 Kommentare

Habt ihr den Samsung Treiber "Samsung_NVM_Express_Driver_3.0" installiert sollte dieser für 1809 deinstalliert werden da dieser nicht kompatibel ist. Der ...

Utilities
Teamviewer 14 Verbindungsprobleme mit Proxy
Tipp von PeterleB vor 1 TagUtilities

Nach dem Umstieg von Version 13 auf 14 wollte sich TV nicht mehr mit dem Netz verbinden, ignorierte offenbar ...

Administrator.de Feedback
Unsere Datenbank wurde umgestellt
Information von Frank vor 1 TagAdministrator.de Feedback5 Kommentare

Hallo User, ich habe in der Nacht unsere Datenbank umgestellt. D.h. neue Version (MySQL 8) und andere Örtlichkeit. Sollte ...

Sonstige Systeme
Es war einmal ein BeOS - Wer erinnert sich noch?
Information von BassFishFox vor 4 TagenSonstige Systeme8 Kommentare

Hallo, Bin gerade ueber Haiku gestolpert, von dessen Existenz als "Nachfolger des BeOS" ich wusste nur mich nie wirklich ...

Heiß diskutierte Inhalte
Vmware
Gebrauchten ESXi- Server verkaufen: Festplatten DSGVO-konform löschen?
Frage von l.scheperVmware20 Kommentare

Hallo, wir möchten einen gebrauchten FUJITSU Server verkaufen. Auf dieser Maschine ist noch ein installiertes ESXi 5.1 und ne ...

Router & Routing
Dediziertes ISP -Routing
gelöst Frage von niLuxxRouter & Routing13 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Durch verschiedene Umstände kann es nun sein, dass sich zwei ...

Samba
Linux Server und Windows Linux Client
gelöst Frage von 137898Samba12 Kommentare

Hallo, ich bräuchte dringend bei der Aufgabe etwas Hilfe. Die Firma XYZ besteht auf zwei Abteilungen Logistik und Technik ...

Windows Server
Windows Server 2012 R2 Komponentenspeicher wurde beschädigt. Inplace Upgrade?
Frage von DeRo93Windows Server11 Kommentare

Hallo liebes Forum, Wir besitzen einen Domänencontroller der auf einem Windows Server 2012 R2 läuft. Dadurch, dass alle Windows ...