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, 5493 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
Windows Server

Gruppenrichtlinie um HOSTS-Datei zu verändern

gelöst Frage von hamspiritWindows Server9 Kommentare

Hallo zusammen, ein Netzwerk, welches aus der Zentrale und 10 entfernten Standorten besteht, besteht aus einem gemeinsamen AD mit ...

Windows 7

RDP: Setup-Dateien verändern sich von selber, Inhalte immer gleich?

gelöst Frage von qualidatWindows 72 Kommentare

Mein Problem klingt obskur, ist es auch. Für den RDP-Zugriff auf einen Windows Server 2012 R2 unter verschiedenen Identitäten ...

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

Dateien nach Inhalt umbenennen

gelöst Frage von IcemaniacBatch & Shell4 Kommentare

Hallo Community, ich hoffe Ihr könnt mir weiter helfen. Ich habe in einem Ordner hunderte txt-Dateien auf einem Windows-PC, ...

Neue Wissensbeiträge
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 1 TagHumor (lol)4 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 1 TagExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 2 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 3 TagenVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerk-Architektur mit VLANs
Frage von niLuxxNetzwerke14 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Ich werde in Kürze das Netzwerk unserer (sehr) kleinen Firma ...

Webbrowser
Neuer Tab Firefox
gelöst Frage von BleifussWebbrowser12 Kommentare

Hallo, via Strg + T öffnet man ja einen neuen Tab. Gibt es die Möglichkeit, dass der Tab sich ...

Windows Server
2 DCs Hierarchie umkehren
Frage von TuberPlaysWindows Server11 Kommentare

Hallo, wir hatten bisher 1 Domain Controller in einer VM. Nun kam noch ein zusätzlicher Domain Controller auf einem ...

Windows Server
WSUS nach Upgrade - kein Start mehr
gelöst Frage von Ghost108Windows Server9 Kommentare

Hallo zusammen, habe einen Windows Server 2012 welcher als WSUS dienst. Jetzt wurde ein Upgrade auf Server 2016 durchgeführt ...