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, 3864 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
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...