keiosid
Goto Top

Dateinamen mit vbs auslesen und in eine TXT Datei schreiben

Hallo,

ich hoffe mal, das ist das richtige Unterforum.
Nach diversen suchen und Hilfe aus einem Windows Scripting Buch bekomme ich es trotzdem nicht hin.
Eigentlich sollte es trivial sein.
Ich habe ein Verzeichnis mit ca 100 PDF dateien. Von diesen Dateiensollen die ersten 10 Zeichen ausgelesen werden und in
eine TXT Datei geschrieben werden. Einmalig, nicht automatisiert.

Folgendes habe ich zusammengebastelt:

Option Explicit											 'Ausschalten von automatischer Variablenanlage  
Dim Dateiname, Zieldatei, strPath, zielPath, FLD, strName, file, strNameN, fso, f			 'Bestimmen der  Variablen  
strPath ="C:\Users\SAM\Desktop\SundS_MWST"  			 'Festlegen des Pfades für die Dateinamen zum Auslesen  
zielPath="C:\Users\SAM\Desktop\SundS_MWST\Liste.txt" 	 'Festlegen der Zieldatei  
Set FLD = FSO.GetFolder(strPath) 
For Each file in FLD.Files 
   strName = file.Name 
   strNameN = left(file.Name,10)
	Function SchreibeZeileInDatei
	Const ForReading = 1, ForWriting = 2
	Set fso = CreateObject("Scripting.FileSystemObject")  
	Set f = fso.OpenTextFile("C:\Users\SAM\Desktop\SundS_MWST\Liste.txt", ForWriting, True)  
	f.WriteLine strNameN
	End Function
Next

Wo liegen hier meine Fehler?
Gehe ma ldavon aus, dass es mehrer sind, da ich keine Programmierleuchte bin.

Vielen Dank
Grüße
KEIOS

Content-ID: 282354

Url: https://administrator.de/forum/dateinamen-mit-vbs-auslesen-und-in-eine-txt-datei-schreiben-282354.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

114757
114757 09.09.2015 aktualisiert um 10:10:11 Uhr
Goto Top
Moin,
dein korrigierter und gekürzter VBS-Code:
Option Explicit
Dim file, fso, f
Set fso = CreateObject("Scripting.FileSystemObject")  
Set f = fso.OpenTextFile("C:\Users\SAM\Desktop\SundS_MWST\Liste.txt", 2, True)  
For Each file in fso.GetFolder("C:\Users\SAM\Desktop\SundS_MWST").Files  
   f.WriteLine left(file.Name ,10)
Next
f.Close

Mit Powershell wäre das ein Einzeiler face-smile ...
gci 'C:\Users\SAM\Desktop\SundS_MWST\*.pdf' | %{$_.Name.Substring(0,10)} | out-file 'C:\Users\SAM\Desktop\SundS_MWST\Liste.txt'  
Gruß jodel32
KeiosID
KeiosID 09.09.2015 um 10:01:46 Uhr
Goto Top
Hallo Jodel,

das kling gut. Versteh ich auch.
Aber wie erstelle/starte ich eine Powershell datei?

Umbenennen einer Txt Datei in Exe geht wohl nicht(Win8)
Notfalls kann ich alles anch WIN 7 umstellen

Grundsätzlich würde ich es aber gerne mit VBS lösen,
um auch einen kleinen Lerneffekt zu haben.

Danke
GRuß
Keios
114757
Lösung 114757 09.09.2015 aktualisiert um 10:58:35 Uhr
Goto Top
Zitat von @KeiosID:

das kling gut. Versteh ich auch.
Aber wie erstelle/starte ich eine Powershell datei?
https://www.windowspro.de/andreas-kroschel/powershell-scripts-ausfuehren
Grundsätzlich würde ich es aber gerne mit VBS lösen,
um auch einen kleinen Lerneffekt zu haben.
Steht doch oben auch in VBS, du hast die Wahl zwischen beiden Varianten face-smile, was willst du mehr ?
KeiosID
KeiosID 09.09.2015 um 10:35:40 Uhr
Goto Top
ARRRGHHH..... das korrigierte habe ich im Eifer des Gefechts übersehen.

Teste das aus und melde mich dann nochmal.

My fault.

Grüße
Keios
KeiosID
KeiosID 09.09.2015 um 10:58:10 Uhr
Goto Top
Also Jodel,
erstmal danke, hat auf ANhieb funktioniert.
Obwohl ich nicht alles verstanden habe.
Habe es mal soweit kommentiert, den Rest mus ich wohl noch nach lernen.
Option Explicit  'Ausschalten der automatischen Vaiablenerzeugung  
Dim file, fso, f	'Anlegen der Benötigten Variablen  
Set fso = CreateObject("Scripting.FileSystemObject")  'Zugreifen/Verwenden der vorhanden CreateObject Funktion: fso FileSystemObject zuweisen  
Set f = fso.OpenTextFile("C:\Users\SAM\Desktop\SundS_MWST\Liste.txt", 2, True) 'da verließen Sie Ihn, Nur da shier wohl die Zieldatei zugewiesen wird  
For Each file in fso.GetFolder("C:\Users\SAM\Desktop\SundS_MWST").Files 'For next Schleife, hier arbeitet er die Dateien ab und schribt diese sofort in die Liste  
	f.WriteLine left(file.Name ,10)
next 'ForNExt fertig  
f.close 'Fenster schließen, bzw Beenden des Objekts, welches unter f verknüpft ist.  

Grüße
Keios
PS.: kann geschlossen werden
(Wenn man das überhaupt noch macht)