Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

VBS Textausgabe mit Verzeichnisname





Frage

Hallo zusammen, zur Abwechselung benötige ich mal Eure Hilfe, da ich gerade mächtig auf dem Schlauch stehe. Wie lautet der VBScript Befehl um den Verzeichnisnamen mit ausgeben zu lassen? die normale Ausgabe vom Inhalt eines Verzeichnises habe ich so gelöst [quote]set i=fso.opentextfile("Inhalt.txt")[/quote] Nun soll aber vor Inhalt.txt noch der Verzeichnisname stehen, also z.B. Excel - Inhalt.txt. Der entsprechende .vsb wird in dem Verzeichnis ausgeführt und die Textdatei danach in ein anderes zur Archivierung gespeichert. Nun ist aber das Umbenennen mit der dauer läßtig. Hilfe in Sicht? Um Ehrlich zu sein bin ich momentan ein wenig Faul um Stundenlang nachzublättern. Ralf

Antwort 1 von Mubarak

Hi, könnte so funktionieren:

set n = "Excel"
set i = fso.opentextfile("n & Inhalt.txt")

MfG

Antwort 2 von Thorsti

Hi!

Also wenn ich Dich richtig verstehe, dann möchtest Du eine Datei erzeugen. Dafür musst Du dem WSH das erstmal sagen. Mit dem obigen Code öffnest Du eine Datei nur zum Lesen. Schreibeneiner neuen Datei wäre so:
set i=fso.opentextfile("Inhalt.txt",2,true)
Jetzt möchtest Du noch den Verzeichnisnamen als Teil des Dateinamens? Dann ist die Frage, wie Du an den Verzeichnisnamen kommst. Steht der Name schon vorher fest, oder wird der erst zur Skriptlaufzeit bekannt?
Wenn er vorher feststeht dann so:
set i=fso.opentextfile("Excel - Inhalt.txt",2,true)

Wenn der Name in einer Variablen "verzeichnis" steht dann so:
set i=fso.opentextfile(verzeichnis&" - Inhalt.txt",2,true)

Wenn vom Verzeichnisnamen der Pfad abgetrennt werden muss so:
set i=fso.opentextfile(fso.getbasename(verzeichnis)&" - Inhalt.txt",2,true)

Wenn es sich um das Verzeichnis handelt, in dem das Skript liegt dann:

set i=fso.opentextfile(fso.getbasename(fso.getparentfoldername(wscript.scriptfullname))&" - Inhalt.txt",2,true)


Allerdings verstehe ich nicht, warum eine Datei den Namen ihres Verzeichnisses enthalten muss. Die Verbindung besteht doch schon durch den Pfad?

@Mubarak:
Wenn Du n in die Stringkonstante reinnimmst, erkennt der WSH das nicht mehr als Variable!

Gruss,
Thorsten

Antwort 3 von Ralfman

Hi Muraback,
das funktioniert sicherlich, aber da ich viele Verzeichnisse habe (Vera, Kerstin, Ralf, Excel, Word, Downloads, Telefon, u.s.w.) und auch mal welche dazu kommen, möchte ich den Namen automatisch auslesen lassen.
Hast Du da eine Idee? Ich bin bereits am Blättern, aber die Lektüre ist so *!# Aufgebaut das ich (bisher) nichts finde. Und das wird von mir immer wieder benötigt (zur Aktualisierung), wenn´s nur eine einmalige Aktion währ würd ich kein gerede ´drum machen.

Ralf

Antwort 4 von Ralfman

HI Thorsti,
hat sich wohl überschnitten, probier ich gleich mal aus. Melde mich gleich wieder.

Ralf

Antwort 5 von Thorsti

Hi!

Ich glaub ich weiss jetzt was Du meinst! Du könnstest einen Array anlegen mit jedem Ordner als ein Element darin. Dann machst Du die Dateiöffnungen in einer Schleife für jedes Arrayelement:

set fso=createobject("scripting.filesystemobject")
a=array("c:\bertha","d:\files\jürgen","e:\dokumente\Sabine")
for each ordner in a
	set i=fso.opentextfile(fso.getbasename(ordner)&" - Inhalt.txt",2,true)
	...
	...
	i.close
next


Gruss,
Thorsten

Antwort 6 von Ralfman

Thorsi ich muß Dir Danken,
set i=fso.opentextfile(fso.getbasename(fso.getparentfoldername(wscript.scriptfullname))&" - Inhalt.txt",2,true)

funktioniert Hervorragend, ich mußte nur
i=fso.open... gegen
o=fso.open...
Austauschen.
Und mit dem öffnen der Datei hast Du recht, ich war in der Zeile Verrutscht beim Herauskopieren.

Danke, für die schnelle Hilfe.

Ralf