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

Frage Entwicklung

Mitglied: IsoldeBaden

IsoldeBaden (Level 1) - Jetzt verbinden

20.12.2007, aktualisiert 18.10.2012, 5456 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.
'http://www.administrator.de/Inhalt_einer_Datei_ver%C3%A4ndern_und_hinzuf%C3%BCgen.html 
04.
'beruht auf: 
05.
'http://www.administrator.de/Preislisten_umwandeln.html 
06.
'ergänzender Tread 
07.
' http://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
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 StundeInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 4 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 4 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 8 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement18 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...