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, 3579 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
Server-Hardware

Lösung für Ersatz eines defekter Raid-Controllers

Anleitung von wellknown vor 3 StundenServer-Hardware1 Kommentar

Hallo, da ich nichts gefunden habe und selbst eine Lösung brauchte, hier eine kleine Anleitung für alle die vor ...

Windows 10

Kumuative Updates für .NET Framework kommen für Windows 10 V1809

Information von kgborn vor 8 StundenWindows 10

Microsoft hat das Ganze im Beitrag Announcing Cumulative Updates for .NET Framework for Windows 10 October 2018 Update vorgestellt. ...

Sicherheit
Neue IT-Administrator Ausgabe - Endpoint Security
Information von Frank vor 8 StundenSicherheit

Die Endgeräte in Unternehmen stellen das wohl größte Einfallstor für Angreifer dar. Ein geöffneter, infizierter E-Mail-Anhang oder der Besuch ...

Windows Tools

Windows 10 BitLocker Laufwerkverschlüsselung ohne TPM-Chip

Anleitung von Frank vor 9 StundenWindows Tools4 Kommentare

Diese Anleitung zeigt, wie man die Windows BitLocker Laufwerkverschlüsselung ohne TPM-Chip Schritt für Schritt aktiviert. Zwar haben viele Laptops ...

Heiß diskutierte Inhalte
Hyper-V
Windows Serer 2016 Standard virtualisieren
gelöst Frage von fritte87Hyper-V33 Kommentare

Hallo zusammen, ich muss für eine kleine Firma ein entsprechendes neues kleines Konzept bauen. Ich habe einen Server Standard ...

Windows Server
Kann DNS-Einträge nicht finden
gelöst Frage von BPeterWindows Server19 Kommentare

Hallo, wenn ich folgenden Befehl absetze, bekomme ich eine Liste zurück mit allen Einträgen der DNS-Zone. Wenn ich aber ...

Grafikkarten & Monitore
Einfachste Lösung Darstellung einer Website auf einem Monitor oder Fernseher
gelöst Frage von winIT3264Grafikkarten & Monitore12 Kommentare

Hallo zusammen, wir wollen eine einzelne Webseite dauerhaft auf einem Monitor / Fernseher darstellen. Ähnlich wie die Apotheken ihre ...

Firewall
Externer Zugriff auf Webserver
Frage von KingLouieFirewall12 Kommentare

Hallo zusammen, ich habe folgendes Problem: Ein Kollege muss gelegentlich auf einen Webserver zugreiffen, sowohl von intern als auch ...