Frage ist gelöstWie wird die Reihenfolge bei WScript.Arguments.Count festgelegt bei gleichzeitiger Übergabe mehrerer Dateien per Drag and Drop
01.08.2010
15:54:38 Uhr2434 Aufrufe
4 Antworten
15:54:38 Uhr
4 Antworten
Noch nicht bewertet
Hallo, ich bins nochmal.
Nochmal vorweg, habe leider keinerlei Programmier-Erfahrung.
Zu meinem Problem:
Wollte mehrere Textdateien gleichzeitig per Drag and Drop über WScript.Arguments.Count an Vb-Skript übergeben.
Die einzelnen Dateien sollten dann über die Argumente einzeln verarbeitbar sein. Klappt auch soweit, nur dass ich noch nicht verstanden habe, welches Argument welcher Datei zuordnet wird.
Weder die Dateinamen noch die "Anwähl-Reihenfolge" schienen mir bisher ausschlaggebend zu sein, welche Datei nun im Argument 0 oder 1 usw. landet.
Wie gesagt, bin leider ahnungslos
.
Vielen Dank im voraus für eure Hilfe!
Mfg
Vollnoob
Nochmal vorweg, habe leider keinerlei Programmier-Erfahrung.
Zu meinem Problem:
Wollte mehrere Textdateien gleichzeitig per Drag and Drop über WScript.Arguments.Count an Vb-Skript übergeben.
Die einzelnen Dateien sollten dann über die Argumente einzeln verarbeitbar sein. Klappt auch soweit, nur dass ich noch nicht verstanden habe, welches Argument welcher Datei zuordnet wird.
Weder die Dateinamen noch die "Anwähl-Reihenfolge" schienen mir bisher ausschlaggebend zu sein, welche Datei nun im Argument 0 oder 1 usw. landet.
Wie gesagt, bin leider ahnungslos
Vielen Dank im voraus für eure Hilfe!
Mfg
Vollnoob
LotPings schreibt am 01.08.2010 um 17:03:02 Uhr
Hallo Vollnoob,
das hängt davon ab wie du markierst und
welches Eement du anfasst zum drag'n'drop das wird das erste in der Liste.
Kannst du aber auch ausprobieren.
(SCript basiert auf Force Cscript von RobVanDerWoude)
Gruß
LotPings
das hängt davon ab wie du markierst und
welches Eement du anfasst zum drag'n'drop das wird das erste in der Liste.
Kannst du aber auch ausprobieren.
(SCript basiert auf Force Cscript von RobVanDerWoude)
01.
' 02.
Option explicit 03.
04.
Dim strArgs, strEngine, i, wshShell 05.
Set wshShell = CreateObject( "WScript.Shell" ) 06.
strEngine = UCase( Right( WScript.FullName, 12 ) ) 07.
08.
strArgs = "" 09.
If WScript.Arguments.Count > 0 Then 10.
For i = 0 To WScript.Arguments.Count -1 11.
strArgs = strArgs & Right(100+i,2) & " = " & WScript.Arguments(i) & vbCRLF 12.
Next 13.
End If 14.
15.
If strEngine <> "\CSCRIPT.EXE" Then 16.
MSGBOX(strArgs) 17.
Else 18.
wscript.echo strArgs 19.
End IfGruß
LotPings
bastla schreibt am 01.08.2010 um 19:37:07 Uhr
Hallo LotPings!
Wenn Du bei Aufruf über "WScript" ohnehin nicht einen Neustart des Scripts über "CScript" initiierst, ist die Unterscheidung hier eigentlich überflüssig - ein "WScript.Echo" erzeugt unter "WScript" sowieso eine Standard-MessageBox ...
Grüße
bastla
Wenn Du bei Aufruf über "WScript" ohnehin nicht einen Neustart des Scripts über "CScript" initiierst, ist die Unterscheidung hier eigentlich überflüssig - ein "WScript.Echo" erzeugt unter "WScript" sowieso eine Standard-MessageBox ...
Grüße
bastla
LotPings schreibt am 02.08.2010 um 08:02:40 Uhr
Hallo bastla,
du jast ja recht, aus Faulheit habe ich mich erinnert das da eine Argument-Sammel Routine drin war, und zu viel unnötiges drin gelassen.
Hier also eine kompaktere Version (die die Argumente ab 1 zählt):
Gruß
LotPings
du jast ja recht, aus Faulheit habe ich mich erinnert das da eine Argument-Sammel Routine drin war, und zu viel unnötiges drin gelassen.
Hier also eine kompaktere Version (die die Argumente ab 1 zählt):
01.
If WScript.Arguments.Count > 0 Then 02.
For i = 0 To WScript.Arguments.Count -1 03.
strArgs = strArgs & Right(" " & i+1,2) & " = " & WScript.Arguments(i) & vbCRLF 04.
Next 05.
End If 06.
wscript.echo strArgs Gruß
LotPings





