220

Frage ist gelöst
Wie wird die Reihenfolge bei WScript.Arguments.Count festgelegt bei gleichzeitiger Übergabe mehrerer Dateien per Drag and Drop

Mitglied: Vollnoob
01.08.2010
15:54:38 Uhr
2434 Aufrufe
4 Antworten
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 face-wink .
Vielen Dank im voraus für eure Hilfe!
Mfg
Vollnoob

Mitglied: LotPings
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)
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 If

Gruß
LotPings
Mitglied: Vollnoob
Vollnoob schreibt am 01.08.2010 um 17:20:20 Uhr
Hallo LotPings,
Besten Dank! face-smile
Daran wirds also festgemacht.
Nett von dir direkt das mit dem Ausprobier-Skript gleich mitreinzustellen, so wurds sofort klarer face-wink
Mfg
Vollnoob
Mitglied: bastla
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
Mitglied: LotPings
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):
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
mehr ...Ähnliche Beiträge