Forums Neueste Beiträge
 

Merkwürdiges Verhalten

05/03/2010 - 10:25 von Uwe Homm | Report spam
Liebe NG,

ich habe mal 'ne Frage zum WSH. Das folgende Script soll eine Datei
öffnen, zeilenweise lesen und die gelesenen Zeilen in eine zweite Datei
schreiben. Die zu lesende Datei soll per DragDrop übergeben werden
können. Ansonsten wird die im if-Zweig angegebene Datei user.txt
verwendet. Das Script funktioniert soweit, dass bei Doppelklick user.txt
gelesen und in protokoll.txt geschrieben wird. Es funktioniert auch in
der Kommandozeile bei Aufruf mit

cscript test.vbs testdatei.txt
oder
wscript test.vbs testdatei.txt

für eine beliebige zu lesende Datei. Es funzt *nicht*, wenn ich die
Datei testdatei.txt per DragDrop auf das Script ziehe...

Jemand 'ne Idee, warum der fout-Stream nicht bedient wird?

'='Main
Dim sFileName

Dim oArgs
Set oArgs = WScript.Arguments

if oArgs.Count <> 1 then
MsgBox "Eine Datei per Drag and Drop angeben!",64,"Fehler"
sFileName = "user.txt"
else
sFileName = CStr(oArgs(0))
end if

Dim fso, fin, fout, Zeile, Feld
Set fso = CreateObject("Scripting.FileSystemObject")
'(Name, Read=1/Write=2/Append=8, ASCII=False/Unicode=True)
Set fout = fso.OpenTextFile ("Protokoll.txt",8,true)
Set fin = fso.OpenTextFile (sFileName,1,true)

Do while not fin.AtEndOfStream
Zeile = fin.readLine
fout.WriteLine (Zeile)
Loop

Wscript.Quit(0)
'Ende Main
'==

\\|//
(@ @)
-oOO(_)--OOo
Mit freundlichen Grüssen
Uwe Homm

http://www.uwehomm.de
http://maps.google.com/maps?f=q&...3%A4rtchen

"Wissenschaft ist wie Sex – manchmal kommt etwas Nützliches dabei
heraus, aber das ist nicht der Grund, warum wir es betreiben."
"Wenn man etwas nicht auf Anfàngerniveau erklàren kann, hat man es
selbst nicht verstanden."
Richard P. Feynman (11.05.1918 - 15.02.1988)

"Der Vorteil der Klugheit besteht darin, daß man sich dumm stellen kann.
Das Gegenteil ist schon schwieriger."
Kurt Tucholsky (09.01.1890 - 21.12.1935)
 

Lesen sie die antworten

#1 Pegasus [MVP]
05/03/2010 - 12:11 | Warnen spam
"Uwe Homm" wrote in message
news:hmqimm$le9$02$
Liebe NG,

ich habe mal 'ne Frage zum WSH. Das folgende Script soll eine Datei
öffnen, zeilenweise lesen und die gelesenen Zeilen in eine zweite Datei
schreiben. Die zu lesende Datei soll per DragDrop übergeben werden können.
Ansonsten wird die im if-Zweig angegebene Datei user.txt verwendet. Das
Script funktioniert soweit, dass bei Doppelklick user.txt gelesen und in
protokoll.txt geschrieben wird. Es funktioniert auch in der Kommandozeile
bei Aufruf mit

cscript test.vbs testdatei.txt
oder
wscript test.vbs testdatei.txt

für eine beliebige zu lesende Datei. Es funzt *nicht*, wenn ich die Datei
testdatei.txt per DragDrop auf das Script ziehe...

Jemand 'ne Idee, warum der fout-Stream nicht bedient wird?

'=> 'Main
Dim sFileName

Dim oArgs
Set oArgs = WScript.Arguments

if oArgs.Count <> 1 then
MsgBox "Eine Datei per Drag and Drop angeben!",64,"Fehler"
sFileName = "user.txt"
else
sFileName = CStr(oArgs(0))
end if

Dim fso, fin, fout, Zeile, Feld
Set fso = CreateObject("Scripting.FileSystemObject")
'(Name, Read=1/Write=2/Append=8, ASCII=False/Unicode=True)
Set fout = fso.OpenTextFile ("Protokoll.txt",8,true)
Set fin = fso.OpenTextFile (sFileName,1,true)

Do while not fin.AtEndOfStream
Zeile = fin.readLine
fout.WriteLine (Zeile)
Loop

Wscript.Quit(0)
'Ende Main
'==


Was passiert denn genau, wenn du dein Script mit Drag und Drop laufen làsst?

Ähnliche fragen