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 Inhalt einer Datei verändern und hinzufügen

Mitglied: IsoldeBaden

IsoldeBaden (Level 1) - Jetzt verbinden

20.12.2007, aktualisiert 18.10.2012, 5512 Aufrufe, 4 Kommentare

am besten in Form einer Batch-Datei oder VBS

Hallo,

ich hab folgendes Anliegen.
Ich habe dateien, in denen der Inhalt angepasst werden muss. Am liebsten wäre mir eine Batch oder VBS-Lösung.

Folgendes soll die Batch-Datei können:

Inhalt der Datei soll mit Zeilen von mir ersetzt werden. Evtl. auch sollen auch Zeilen ersetzt werden, falls sie schon vorhanden sind.

Könnt ihr mir bitte eine Vorlage zeigen?

Danke
Isolde
Mitglied: gemini
20.12.2007 um 16:18 Uhr
Hallo Isolde,

Inhalt der Datei soll mit Zeilen von mir ersetzt werden. Evtl. auch sollen auch Zeilen ersetzt werden, falls sie schon vorhanden sind.
Kannst du das etwas mehr spezifizieren?
Wie kann das Script die zu ersetzenden Zeilen erkennen? Ist es immer Zeile 18 oder beinhaltet sie einen best., immer gleichlautenden Text?

Könnt ihr mir bitte eine Vorlage zeigen?
Eine Vorlage (VBS), die EINE Datei öffnet und darin Zeilen mit einem bestimmten Zeilenanfang mit Daten aus einer anderen Datei editiert hätte ich parat. Die schreibt sogar noch ein Log. Müsstest dir halt für deine Bedürfnisse umbauen.

HTH,
gemini
Bitte warten ..
Mitglied: IsoldeBaden
20.12.2007 um 16:25 Uhr
Hallo Gemini,

danke für deine schnelle Antwort.

Der Inhalt der ersetzt werden soll, hat immer den gleichlautenden text.

Könntest du mir deine Vorlage (VBS) zur Verfügung stellen? Wäre sehr nett!

Danke
Bitte warten ..
Mitglied: pacobay
21.12.2007, aktualisiert 18.10.2012
Hallo Isolde,
du hast Glück weil gerade Opferfest und X-Mas ist
und weil ich gerade in einem anderen etwas umfangreicheren Thread
Code verfasst habe, der sich sehr leicht und schnell auf Deine Bedürfnisse anpassen ließ.
Naja, auf die Bedürfnisse wie ich Sie verstanden habe.
Kann ja auch sein, dass ich da falsch liege.

Im Prinzip ist der Code in Richtung "Mit Kanonen auf Spatzen"
Aber er war halt da und es war einfacher für mich das Bestehende anzupassen
als irgendwas Neues zu schreiben.

Alles Weitere im Code

merry x-mas & happy new year
pacobay


01.
' VB Script Document
02.
'Erstellt als helptesk 4 Thread
03.
'https://www.administrator.de/Inhalt_einer_Datei_ver%C3%A4ndern_und_hinzuf%C3%BCgen.html
04.
'beruht auf:
05.
'https://www.administrator.de/Preislisten_umwandeln.html
06.
'ergänzender Tread
07.
' https://www.administrator.de/forum/doppelte-leerstellen-innerhalb-einem-string-entfernen-vbs-76371.html
08.
 
09.
' for          : WSH/wcript.exe
10.
' testet on    : XPP SP2 / WSH 5.7 für XP
11.
'
12.
' Name of File : textErsetzenV02.vbs
13.
' Last edit    : 21.12.2007 15:06:20
14.
' Last editor  : pacobay
15.
'
16.
'   TARGET:
17.
'	Umwandlung des Inhaltes einer Textdatei
18.
'   fester Suchstring festgelegter Ersatz
19.
 
20.
' Beispiel:
21.
' Aus den Zeilen in dem InputFile :
22.
'      Franz jagt im Auto (einem komplett verwahrlosten Auto) quer durch Bayern.
23.
'      Franz jagt im AutO (einem komplett verwahrlosten AUto) quer durch Bayern.
24.
'      Franz jagt im AUTO (einem komplett verwahrlosten AUTo) quer durch Bayern.
25.
'      Franz jagt im AUTO (einem komplett verwahrlosten auto) quer durch Bayern.
26.
'
27.
' wird immer immer in dem OutputFile
28.
'      Franz jagt im Taxi (einem komplett verwahrlosten Taxi) quer durch Bayern.
29.
'      Franz jagt im Taxi (einem komplett verwahrlosten Taxi) quer durch Bayern.
30.
' etc
31.
'
32.
'   notwendige Laufumgebungsspezifische Anpassungen in zwei Abschnitten nötig
33.
 
34.
' Die Abschnitte sind im Code einfach zu finden durch Suche nach XXXXXX
35.
'
36.
' Im Abschnitt 01 ist entsprechend anzupassen:
37.
' (Pfad&Dateiname) Input/Output Files
38.
'
39.
' Im Abschnitt 02 ist entsprechend anzupassen:
40.
' Suchmuster   und Ersatzmuster (im Beispiel "Auto" und "Taxi")
41.
'
42.
'
43.
' Ablauf
44.
'       Prüft ob Inputfile gefunden werden kann
45.
'       ifnot Abbruch
46.
'       ifyes weiter
47.
'
48.
' Prüft ob Outputfile schon vorhanden
49.
'       if yes Abfrage ob gelöscht werden kann
50.
'    i         if yes dann löschen und weiter
51.
'              if not Abbruch
52.
' if Not einfach weiter
53.
' 
54.
' Zeilenweises auslesen der Inputdatei
55.
'              ersetzen gemäß Vorgaben (Suchmuster durch ErsatzMuster)
56.
'              wegschreiben der neuen Zeile (OutDS)in das OutputFile
57.
' wenn alle Zeilen gelesen dann ich habe fertig
58.
'
59.
'*********************************************************************
60.
'
61.
Option Explicit
62.
'
63.
'Deklaration der Objekte
64.
Dim WshShell
65.
Set WshShell = Wscript.CreateObject("Wscript.Shell")
66.
'---------------------------
67.
Dim FSO, FileIn, FileOut
68.
Set FSO = CreateObject("Scripting.FileSystemObject")
69.
'---------------------------
70.
'
71.
'Ein paar Variablen für meine Art der Popup Messages
72.
'
73.
DIM strTITELs		   ' Meldungstitel im Script festgelegt    [InBox & PopUp]
74.
DIM strMSGs            ' Meldungstexte für Messages                    [PopUp]
75.
DIM numShowTimeS       ' im Script festgelegte Anzeigezeit in sec      [PopUp]
76.
DIM numBtnCodeR        ' ReturnCode Wert des geklickten Buttons        [PopUp]
77.
 
78.
'numBtnCodeR=WshShell.popup(strMSGs,numShowTimeS,strTITELs,1+32+4096)
79.
 
80.
'---------------------------
81.
' XXXXXX ANPASSUNG bitte hier  (Abschnitt01) XXXXXX
82.
' In diesen Abschnitt(Pfad&Dateiname)ensprechend anpassen
83.
Const Input        = "C:\just4Test\auto.txt"
84.
Const Output       = "C:\just4Test\taxi.txt"
85.
' XXXXXX Ende dieses Anpassungsabschnittes XXXXXX
86.
 
87.
'---------------------------
88.
Dim AZDs                            'Anzahl der verarbeiteten Datensätze
89.
'---------------------------
90.
'
91.
Dim InDS							'InputDatensatz
92.
Dim OutDS							'OutputDatensatz
93.
 
94.
'---------------------------
95.
'
96.
'*********************************************************************
97.
'Ende der Deklaration
98.
'*********************************************************************
99.
 
100.
'Einige Hilfsprozeduren
101.
'
102.
' Deklaration für  Funktion Ersetze
103.
  DIM objRA     
104.
  DIM SuchString, Suchmuster, ErsatzMuster
105.
 
106.
' XXXXXX ANPASSUNG bitte hier  (Abschnitt02) XXXXXX
107.
  Suchmuster   = "Auto"    ' Was suchst Du :
108.
  ErsatzMuster = "Taxi"    ' Wodurch soll es ersetzt werden
109.
' XXXXXX Ende dieses Anpassungsabschnittes XXXXXX
110.
'
111.
'
112.
Function Ersetze(SuchString,Suchmuster, ErsatzMuster)
113.
'
114.
 SET objRA = new RegExp      ' in VBS hier keine explizite Objektzuweisung nötig
115.
 objRA.pattern = Suchmuster  ' Legt das Suchmuster fest.
116.
 objRA.Global = True         ' Legt globales Anwenden fest. (alle Autos)
117.
 objRA.IgnoreCase = True     ' Ignoriert die Schreibweise. (auto,AUto,Auto etc)
118.
'
119.
  ' Führe nun die Ersetzung durch und weise es als Funktionswert zu.
120.
'
121.
    Ersetze=objRA.Replace(SuchString,ErsatzMuster)
122.
'
123.
 End Function
124.
 
125.
'-------------------------------------------------------------------
126.
'
127.
' Noch ein kleiner HilfsSUB um das Ende anzuzeigen
128.
'
129.
SUB Fertig
130.
WScript.Echo "Ich habe fertig!" &Chr(13)&Chr(13)&+_
131.
"Anzahl der verarbeiteten Zeilen: "&AzDs
132.
END SUB 'Fertig
133.
'
134.
'-------------------------------------------------------------------
135.
'
136.
SUB CheckInFile
137.
' Püfen ob Inputdatei gefunden werden kann
138.
' if yes then öffnen als Vorbereitung zur weiteren Verarbeitung
139.
' If not Info & Abbruch
140.
'
141.
If fso.FileExists(Input) then
142.
   Set FileIn  = FSO.OpenTextFile( Input, 1, true)
143.
else
144.
'
145.
numShowTimeS   = 0
146.
strTITELs	   ="Input-Fehler"
147.
strMSGs       =+_
148.
"Folgende Datei konnte nicht gefunden werden!" &chr(13)&chr(13)&+_
149.
Input &chr(13)&chr(13)&+_
150.
"Das Script wird abgebrochen"&chr(13)&chr(13)&chr(9)&"Pls check:"&chr(9)&chr(9)&"Inputfile-Konstante (in the script)"&chr(13)&chr(9)&"or:" &chr(9)&chr(9)&"The Input-File himself"
151.
'
152.
WshShell.popup strMSGs,numShowTimeS,strTITELs,16+4096
153.
'
154.
Wscript.Quit
155.
end if
156.
'
157.
END SUB 'CheckInFile
158.
'
159.
'-------------------------------------------------------------------
160.
'
161.
SUB CheckOutFile
162.
'
163.
' Prüfen ob Outputdatei bereits vorhanden ist
164.
' if not weiter mit öffnen der Datei als Vorbereitung zur weiteren Verarbeitung
165.
'
166.
' if there then: Abfrage ob diese gelöscht werden kann Optionen: Ok oder Abbruch
167.
	 'Option: OK
168.
	 	 ' dann halt löschen und weiter mit
169.
	 	 ' öffnen der Datei als Vorbereitung zur weiteren Verarbeitung
170.
'
171.
	 'Option: Abbrechen
172.
	 		 'Abbruch
173.
'
174.
'
175.
If fso.FileExists(Output) then
176.
     numShowTimeS   = 0
177.
     strTITELs	   ="Check 4 OutputFile"
178.
     strMSGs       =+_
179.
     "Die vorgesehene Output Datei ist bereits vorhanden!" &chr(13)&chr(13)&+_
180.
     Output &chr(13)&chr(13)&+_
181.
     "Kann die Datei gelöscht werden?"&chr(13)&chr(13)&chr(9)&"OK:"&chr(9)&+_
182.
	 chr(9)&"delete and go on"&chr(13)&chr(9)&"Abbrechen:" &chr(9)&"Scriptende"
183.
'
184.
numBtnCodeR=WshShell.popup(strMSGs,numShowTimeS,strTITELs,1+32+4096)
185.
'
186.
'
187.
'Auswertung des Geklickten
188.
'
189.
         SELECT CASE numBtnCodeR
190.
                CASE  1  ' OK
191.
		 	        fso.DeleteFile(Output)
192.
			        Wscript.sleep 5000  'gibt dem Script etwas Zeit
193.
 	                Wscript.echo "file should be killed"
194.
'
195.
                CASE  2  ' Abbrechen
196.
         	        Wscript.echo "Abbruch durch Anwender"
197.
         	        Wscript.Quit
198.
         END SELECT
199.
'
200.
else
201.
' Na dann gehts einfach weiter
202.
end if
203.
'
204.
'---------------------------
205.
'
206.
' öffnen des Outputfile (FileOut) als Vorbereitung zur weiteren Verarbeitung
207.
' vgl Const Output
208.
'
209.
Set FileOut = fso.OpenTextFile( output,8,true)
210.
'
211.
'---------------------------
212.
'
213.
END SUB 'CheckInFile
214.
'
215.
'-------------------------------------------------------------------
216.
'Der eigentliche ArbeitsSUB
217.
'-------------------------------------------------------------------
218.
'
219.
SUB DoTheWork
220.
'Der InputFile (FileIn) wurde schon unter CheckInFile geöffnet
221.
'
222.
' bis InputFile zu Ende ist, immer weiter machen
223.
' nach loop kommt er hierher zurück:
224.
Do While Not (FileIn.atEndOfStream)
225.
 
226.
'eine Zeile lesen und als Datensatz DS verwenden
227.
   InDS = FileIn.Readline
228.
'Ersetzen mit Hilfe der Funktion Ersetze & zuweisen in OutDS
229.
   OutDS= Ersetze(InDS,Suchmuster, ErsatzMuster)
230.
''Und nun diesen string wegschreiben
231.
   FileOut.WriteLine(outDS)          'schreibt OutDs in Outputfile
232.
'_______________
233.
'' Noch die Anzahl der abgearbeiteten Zeilen um eins erhöhen
234.
' Rein zu Statistikzwecken (vgl.: SUB Fertig)
235.
   AzDs=AZDs+1
236.
'_______________
237.
'
238.
   loop   'und das ganze für die nächste Input-Zeile von vorne (vgl.: Do while)
239.
'
240.
'
241.
END SUB                 'DoTheWork
242.
'
243.
'-------------------------------------------------------------------
244.
'-------------------------------------------------------------------
245.
'
246.
'Ein MainSUB um die einzelnen SUBs aufzurufen
247.
'
248.
SUB MAIN
249.
    CheckInFile
250.
    CheckOutFile 'Achtung File Out bereits hier geöffnet
251.
    DoTheWork
252.
    Fertig
253.
END SUB
254.
'
255.
'*******************************************************************
256.
'
257.
               MAIN     'Der letztendliche Aufruf des ganzen Tralala
258.
'
259.
'*******************************************************************
260.
'
261.
'
262.
' EOF
263.
 
Bitte warten ..
Mitglied: Biber
08.01.2008 um 10:19 Uhr
Moin IsoldeBaden,

wie ist denn der Status dieses Threads?
Konnte Dir einer der geposteten Lösungsansätze helfen oder wartest Du noch Alternativen ab?

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
VB for Applications

Inhalt einer XML Datei Script ändern

gelöst Frage von chris27584VB for Applications4 Kommentare

Hallo zusammen, in folgendem Script <?xml version="1.0"?> -<SkClientConfig xmlns:xsi=" xmlns:xsd=" <LastServerIndex>1</LastServerIndex> <LastUser>11111</LastUser> <LastWorkplace>2358</LastWorkplace> -<SerializableFont> <FontValue>Microsoft Sans Serif; 8,25pt</FontValue> </SerializableFont> ...

Windows Server

PowerShell Inhalt einer csv Datei löschen

gelöst Frage von makaroniWindows Server4 Kommentare

Hallo zusammen, ich möchter gerne automatisiert über einen Task alle 10 Min eine CSV Datei via Powershell einlesen und ...

Batch & Shell

Inhalt einer Datei als Tabelle einlesen

gelöst Frage von SmogKielBatch & Shell2 Kommentare

Hallo, ich möchte gerne eine Datei zeilenweise einlesen und als Tabelle speichern. Hat jemand eine Idee wie das funktioniert? ...

Batch & Shell

Suche ersetzten Inhalt Datei aus gesamten Verzeichnis

Frage von thomas1972Batch & Shell3 Kommentare

Guten Abend, Ich habe folgendes Problem. In einem Verzeichnis liegen x Textdateien, nun möchte ich in den Dateien gewisse ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 1 TagHumor (lol)3 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 2 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 5 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 6 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
SSD zeigt falsche Werte
Frage von karl2014Festplatten, SSD, Raid25 Kommentare

Ich habe ein Problem mit der SSD in meinem Laptop mit Windows 10. Es ist eine 1Tb Platte die ...

Grafikkarten & Monitore
PCIe 1.0 Grafikkarte für 3840x2160
Frage von Windows10GegnerGrafikkarten & Monitore24 Kommentare

Hallo, mein Vater hat einen neuen Monitor gekauft, welcher eine native Auflösung von 3840*2160 hat. Diese muss jetzt auch ...

Windows 10
Windows Enterprise 1809 Eval nicht bootbar
Frage von Sunny89Windows 1022 Kommentare

Hallo zusammen, bevor ich mich jetzt noch stundenlang rumärger wollte ich euch fragen, ob Ihr die gleichen Probleme habt ...

Ubuntu
Installation freerdp 2.0.0-rc4
Frage von kristovUbuntu20 Kommentare

Hallo, möchte freerdp 2.0.0-rc4 auf linux mint 18.3 installieren, habe aber keine Ahnung, wie das funktioniert. freerdp 1.1 ist ...