vollnoob
Goto Top

Wie wird die Reihenfolge bei WScript.Arguments.Count festgelegt bei gleichzeitiger Übergabe mehrerer Dateien per Drag and Drop

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

Content-Key: 148073

Url: https://administrator.de/contentid/148073

Printed on: April 25, 2024 at 13:04 o'clock

Mitglied: 77559
77559 Aug 01, 2010 at 15:03:02 (UTC)
Goto Top
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)
'   
Option explicit

Dim strArgs, strEngine, i, wshShell
Set wshShell = CreateObject( "WScript.Shell" )  
strEngine = UCase( Right( WScript.FullName, 12 ) )

strArgs = ""  
If WScript.Arguments.Count > 0 Then
    For i = 0 To WScript.Arguments.Count -1
        strArgs = strArgs & Right(100+i,2) & " = " & WScript.Arguments(i) & vbCRLF  
    Next
End If

If strEngine <> "\CSCRIPT.EXE" Then  
  MSGBOX(strArgs)
Else 
  wscript.echo strArgs 
End If

Gruß
LotPings
Member: Vollnoob
Vollnoob Aug 01, 2010 at 15:20:20 (UTC)
Goto Top
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
Member: bastla
bastla Aug 01, 2010 at 17:37:07 (UTC)
Goto Top
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: 77559
77559 Aug 02, 2010 at 06:02:40 (UTC)
Goto Top
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):
If WScript.Arguments.Count > 0 Then
  For i = 0 To WScript.Arguments.Count -1
    strArgs = strArgs & Right("   " & i+1,2) & " = " & WScript.Arguments(i) & vbCRLF  
  Next
End If
wscript.echo strArgs 

Gruß
LotPings