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

VBS .txt Inhalt vor schreiben löschen

Frage Entwicklung VB for Applications

Mitglied: deathholly

deathholly (Level 1) - Jetzt verbinden

20.03.2014, aktualisiert 10:49 Uhr, 1434 Aufrufe, 8 Kommentare

Hallo,
ich habe folgendes Script.
Es funktioniert auch, nur das wenn ich es im Overwrite Modus öffne, schreibt es mir nur die erste Zeile.
Im Append Modus klappt es, wenn es aber öfter aufgerufen wird, und das ist definitiv der Fall, wird es immer wieder alles angehängt. Geht nicht!
Wie kann ich den Inhalt erst löschen und dann den neuen Inhalt schreiben, so das die Datei immer aktuell gehalten wird?

01.
Const HKLM = &H80000002 
02.
Set objReg = GetObject("winmgmts://" & strHost & _ 
03.
    "/root/default:StdRegProv") 
04.
Const strBaseKey = _ 
05.
    "Software\Microsoft\Windows\CurrentVersion\Uninstall\"  
06.
objReg.EnumKey HKLM,strBaseKey,arrSubKeys 
07.
       
08.
For Each strSubKey In arrSubKeys 
09.
    intRet = objReg.GetStringValue(HKLM,strBaseKey & strSubKey,_ 
10.
        "DisplayName",strValue) 
11.
    If intRet <> 0 Then  
12.
        intRet = objReg.GetStringValue(HKLM,strBaseKey & strSubKey,_ 
13.
        "QuietDisplayName",strValue) 
14.
    End If 
15.
 
16.
If (strValue <> "") and (intRet = 0) Then 
17.
 
18.
        set fs = CreateObject("Scripting.FileSystemObject") 
19.
        logfile =WshNetwork.Computername &"-Software.txt" 
20.
        set handle = fs.OpenTextFile(logfile,8,true) 
21.
  
22.
        softwareName = strValue 
23.
        handle.WriteLine softwareName 
24.
        handle.close 
25.
End If
Danke
Mitglied: colinardo
20.03.2014, aktualisiert um 10:23 Uhr
Hallo deathholly, Willkommen im Forum!
In deinem Code haben sich doch einige Fehler eingeschlichen, oder du hast nicht den kompletten Code gepostet, bzw. ist der Nicht-Verwendung von Tags geschuldet.

Ich denke du suchst dieses Script zum erstellen einer Liste der installierten Software (das kürzt das ganze etwas ab) :
http://www.administrator.de/contentid/230915

Grüße Uwe

p.s. das nächste mal bitte deinen Code mit Tags auszeichen. Merci.
Bitte warten ..
Mitglied: deathholly
20.03.2014 um 10:25 Uhr
Hallo,
danke für die schnelle Hilfe.
Das Script ist nicht komplett kopiert, dies hier ist nur der wesentliche Teil.

Es funktioniert ja reibungslos, und so wie die Liste rauskommt ist die auch ok, nur das er mir immer die komplette Liste dann anhängt, das möchte ich vermeiden.
Was denn für gewaltige Fehler? Bin gern bereit zu lernen.
Es muss doch irgendwie gehen in der Funktion wenn ich die txt öffne, sie vorher zu löschen?
Bitte warten ..
Mitglied: colinardo
20.03.2014, aktualisiert um 10:42 Uhr
Du solltest am besten alle Werte aus der Registry in der Schleife in einem String sammeln und diesen dann zum Schluss nach der Schleife gesammelt in die Datei schreiben (Im 2 Parameter von OpenTextfile dann eine 2 verwenden damit das File überschrieben wird.)
01.
completecontent = "" 
02.
for each ..... 
03.
   ..... 
04.
   completecontent = completecontent & strValue & vbNewline 
05.
   ..... 
06.
next  
07.
 
08.
fs.OpenTextFile(logfile,2,true)
siehe dazu auch den Link zum Script was ich oben gepostet habe, dort ist das so gemacht ...


Zu den Fehlern:

Was soll ifIf, fehlt ein Return ..
End IfIf (strValue <> "") and (intRet = 0) Then
log file ?? Leerzeichen in der Variablen geht nicht!!
fs.OpenTextFile(log file,8,true)
Deinem for each Konstrukt fehlt das Next das finde ich nirgendwo (-edit- ist ja ein Ausschnitt, aber das sollte man auch vorher erwähnen)
Bitte warten ..
Mitglied: Meierjo
20.03.2014 um 10:39 Uhr
Hallo Deathholly

Ich bin jetzt auch nicht so der VBS-Spezi, aber wenn du

set handle = fs.OpenTextFile(log file,8,true)

durch

set handle = fs.OpenTextFile(logfile,2,true)

ersetzt, sollte das Logfile jedesmal neu angelegt werden

gruss meierjo
Bitte warten ..
Mitglied: deathholly
20.03.2014 um 10:49 Uhr
Zu den Fehlern, die haben sich beim kopieren eingeschlichen.
Ok, werde mich bessern was posten von Codes angeht. Wollte hier nicht jemandem zumuten das ganze Script durchzurosten.

Ich werde es mal versuchen.
danke
Bitte warten ..
Mitglied: deathholly
20.03.2014 um 10:50 Uhr
@ Meierjo

Ja, das dachte ich mir ja auch, aaaaber es wird leider nur die erste Zeile geschrieben!
Bitte warten ..
Mitglied: colinardo
20.03.2014, aktualisiert um 13:10 Uhr
Zitat von deathholly:
Ja, das dachte ich mir ja auch, aaaaber es wird leider nur die erste Zeile geschrieben!
Ist ja auch klar wenn du innerhalb der Schleife in die Datei schreibst und den zweiten Parameter von OpenTextfile auf 2 setzt, dann wird bei jedem Schleifendurchlauf die Datei überschrieben und es befindet sich zum Schluss nur der letzte Wert darin !

Ist aber alles schön im obigen verlinkten Script abzuschauen ....

Also nochmal Beispiele zum Verständnis:

Beispiel Schreiben außerhalb der Schleife (mit vorherigem Sammeln in einer Variablen)
01.
Set fso = CreateObject("Scripting.Filesystemobject") 
02.
arr = Array("Adobe","Sun","Microsoft") 
03.
software = "" 
04.
For i = 0 To UBound(arr) 
05.
        ' Hänge jeden Wert an die Variable mit einem Zeilenumbruch an 
06.
	software = software & arr(i) & vbNewLine 
07.
Next 
08.
' Öffne Datei im Überschreibmodus 
09.
fso.OpenTextFile("demo.txt",2,True).Write(software)
Beispiel: Schreiben in der Schleife
01.
Set fso = CreateObject("Scripting.Filesystemobject") 
02.
arr = Array("Adobe","Sun","Microsoft") 
03.
' Öffne Datei im Überschreibmodus 
04.
Set f = fso.OpenTextFile("demo.txt",2,True) 
05.
For i = 0 To UBound(arr) 
06.
        ' Schreibe Wert jeweils in eine eigene Zeile in der Datei 
07.
	f.WriteLine(arr(i)) 
08.
Next 
09.
' Schließe Datei 
10.
f.Close
Bitte warten ..
Mitglied: Xaero1982
20.03.2014 um 21:06 Uhr
Moin,

du könntest die Datei vorher einfach löschen?

01.
 fso.deleteFile (logfile)
Das setzt du zwischen

01.
 logfile =WshNetwork.Computername &"-Software.txt" 
und
01.
set handle = fs.OpenTextFile(logfile,8,true) 

Solltest du vielleicht noch mit einem:

01.
If (fs.FileExists(logfile)) Then 
02.
     fso.deleteFile (logfile)
Gruß

PS: Ungetestet und überhaupt
PPS: Ansonsten hat colinardo schon alles geschrieben und seins ist sauberer
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Inhalt einer Textbox in eine .txt Datei schreiben
gelöst Frage von Just4fun1990VB for Applications4 Kommentare

Hallo Administrator.de User, ich habe jetzt schon sehr lange gesucht und finde leider nichts. Hier allerdings habe ich gute ...

Batch & Shell
Dateinamen mit vbs auslesen und in eine TXT Datei schreiben
gelöst Frage von KeiosIDBatch & Shell5 Kommentare

Hallo, ich hoffe mal, das ist das richtige Unterforum. Nach diversen suchen und Hilfe aus einem Windows Scripting Buch ...

Batch & Shell
Inhalt eines Textdokuments txt in eine VBS Variable umwandeln
gelöst Frage von T0pD0gBatch & Shell10 Kommentare

Der Titel sagt alles. Allerdings verwende ich folgenden Script um die Variable in einer datei zwischenzuspeichern: Set FSO = ...

Batch & Shell
Kombinationen - Möglichkeiten in txt schreiben lassen!
Frage von freshman2017Batch & Shell8 Kommentare

Hallo Ihr, ich würde gerne bspw. aus 5 Möglichkeiten: A B C D E die verschiedenen Kombinationen, die sich ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 StundenWindows 10

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 4 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 18 StundenInternet3 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 22 StundenDSL, VDSL1 Kommentar

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

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

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

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

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 ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...