Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mit VB-Sckript eine Batch-Datei mit mehr als einem Argument auszuführen geht nicht

Frage Entwicklung Batch & Shell

Mitglied: evinben

evinben (Level 2) - Jetzt verbinden

16.07.2012, aktualisiert 17.07.2012, 3873 Aufrufe, 4 Kommentare

Hallo,

ich versuche mit einem VB-Sckript eine Batch-Datei mit Argumenten auszuführen. Wenn nur ein Argument übergeben wird, dann wird die Batch-Datei fehlerfrei ausgeführt - so:
01.
 CreateObject("Shell.Application").ShellExecute "D:\Probe1.bat","Arg1 FileName",,"runas",1
Wenn aber mehr als ein Argument wie folgt übergeben werden
01.
CreateObject("Shell.Application").ShellExecute "D:\Probe1.bat","""Arg1 FileName"" ""Arg2 RunOptions""",,"runas",1
dann öffnet sich das CMD-Fenster und schließt sich sofort. In der Batch-Datei "D:\Probe1.bat" steht während des Testes nur PAUSE und nichts anders! Also völlig leer.
Auf einem anderen Rechner probiert und das Problem ist dasselbe. Zahlreiche Versuche und Kombinationen mit den Anführungszeichen habe ich in der VBS-Syntax vorgenommen und immer noch kein Erfolg.
Ich habe gelernt, dass in VBS die Anführungszeichen der Argumente verdoppelt werden müssen (und anschließend alle Argumente zusätzlich in Anführungszeichen umrahmen).

Woran kann es liegen?

Gruß
evinben
Mitglied: rubberman
16.07.2012 um 20:40 Uhr
Hallo evinben.

Ich hätte jetzt auch nicht gedacht dass es so schwierig sein könnte, aber nach 3 Versuchen so:
01.
CreateObject("Shell.Application").ShellExecute "cmd.exe", " /c """"D:\Probe1.bat"" ""Arg1 FileName"" ""Arg2 RunOptions""""", "", "runas", 1
Grüße
rubberman
Bitte warten ..
Mitglied: evinben
16.07.2012, aktualisiert 17.07.2012
Hallo rubberman!

Danke dir vielmals für deine erneute Rettung!
Ich sehe, dass der Aufbau ähnlich ist, wie in dem vorherigen Beitrag mit der „uac.vbs“-Datei von dir. Dennoch wollte ich lieber fragen, da es ja mit einem Argument ohne „cmd.exe“ geht.
Ich werde mir diese Lösung - mit cmd.exe dazwischen - als Standard in meinen Vorlagen abspeichern.

Gruß
evinben
Bitte warten ..
Mitglied: 76109
16.07.2012, aktualisiert um 23:59 Uhr
Hallo rubberman!

Hatte mich leider verkuckt

Gruß Dieter
Bitte warten ..
Mitglied: rubberman
17.07.2012, aktualisiert um 01:20 Uhr
Hallo evinben,

ich kann das Verhalten jetzt auch nicht zu 100% nachvollziehen, ich hatte allerdings auch keinen Erfolg den Batch direkt mit den beiden Argumenten aufzurufen.
Die zig Anführungszeichen machen das Lesen nun nicht gerade einfacher, darum vielleicht noch eine kleine Interpretationshilfe. Wenn du die von dir zitierte Regel mit Strings und Anführungszeichen mal umgekehrt anwendest (also umschließende Anführungszeichen entfernen und verdoppelte zu einfachen reduzieren), dann kommst du letztlich zu einer Kommandozeile, die wie folgt aussieht:
cmd.exe /c ""D:\Probe1.bat" "Arg1 FileName" "Arg2 RunOptions""
Das heißt, der gesamte Ausdruck ist in Anführungszeichen gefasst und die einzelnen Argumente nochmals extra, da sie Leerzeichen enthalten oder enthalten könnten.

Grüße
rubberman
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
VB for Applications
gelöst VB Skript Excel Datei (3)

Frage von Frager zum Thema VB for Applications ...

Batch & Shell
gelöst Verlinkung erstellen Batch Datei mit for Schleife (2)

Frage von rusdav zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei Kopieren (17)

Frage von Frager zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
Virenschutz - Meinungen (28)

Frage von honeybee zum Thema Erkennung und -Abwehr ...

Windows 10
Welches OS für Firmengeräte? (18)

Frage von MarkusVH zum Thema Windows 10 ...

Netzwerke
Abisolierwerkzeug (18)

Frage von SarekHL zum Thema Netzwerke ...

Exchange Server
SBS2011: POP3-Connector 10 MB Grenze Email Benachrichtigung (17)

Frage von bogi1102 zum Thema Exchange Server ...