schnacker
Goto Top

batch in vbs übersetzen

Habe hier eine kleine batch-Datei, die ich als vbs laufen lassen will um die langen Dateinamen und Leerzeichen zu umgehen. Kann jemand mal sagen, wie das richtig aussehen muß, damit es läuft? Meine Kenntnisse von vbs sind deutlich unter Null....
Die pingerei habe ich eingebaut weil das Laufwerk Y erst einmal verbunden werden muß.


@echo off 
ping -n 31 127.0.0.1 >nul
explorer.exe /e, Y:\
"c:\programme\Microsoft outlook\Office11\outlook.exe"  
"Y:\05-03_BPA\05. Ausführungsplan\05.2 Texte - Berechnungen\061020 Klärungen.xls"  
exit

Danke!

Content-ID: 42955

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

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

bastla
bastla 24.10.2006 um 21:01:27 Uhr
Goto Top
Hallo Schnacker!

Welche konkreten Vorteile versprichst Du Dir von der Verwendung von VBScript?

Zu Deinem Beispiel Outlook-Start müsstest Du in VBScript etwa folgendes verfassen:
Set Sh = CreateObject("WScript.Shell")  
strProg = """c:\programme\Microsoft Office\Office11\outlook.exe"""  
intResult = Sh.Run strProg, 1 ,0

Grüße
bastla
Schnacker
Schnacker 24.10.2006 um 21:33:29 Uhr
Goto Top
Naja, das eigentliche Problem war, dass der Autostart des Benutzers schneller war als das Netzwerkverbindungsskript und es deswegen Fehlermeldungen hagelte. Deswegen hatte ich Outlokk, den Explorer mit Y und die Excel-Datei als batch gestartet. Was sicher nicht sonderlich elegant ist...
Dank schon mal für die Codezeilen, werde mich morgen mal drüber hermachen und experimentieren...
bastla
bastla 24.10.2006 um 22:44:37 Uhr
Goto Top
Hallo Schnacker!

Dann wirst Du die Doku "scd56de.exe" (dt.) oder "script56.chm" (engl.) sicher brauchen können (bitte googeln) ...

Sicher auch interessant: http://www.microsoft.com/germany/technet/datenbank/articles/600324.mspx

Viele Beispiele findest Du hier bzw da drin ...

Have Fun
bastla
Schnacker
Schnacker 25.10.2006 um 14:30:38 Uhr
Goto Top
Genau davor wollte ich mich drücken face-wink Nichtsdestotrotz schaue ich mir das alles mal an...
BTW: Das OL-Skript gibt mir 1e Fehlermeldung aus: Zeile 3, Zeichen 20, Fehler: Anweisungsende erwartet...
Schnacker
Schnacker 25.10.2006 um 18:00:25 Uhr
Goto Top
SO, nun läuft es:
WScript.Sleep 20*1000
Set ShellWSH = CreateObject("WScript.Shell")  
ShellWSH.Run """C:\Programme\Microsoft Outlook\OFFICE11\outlook.exe""", 4, False  
Set objExcel = CreateObject("Excel.Application")  
Set objWorkbook = objExcel.Workbooks.Open("Y:\05-03_BPA\05. Ausführungsplan\05.2 Texte - Berechnungen\061020 Klärungen.xls")  
objExcel.Visible = TRUE
Danke für die Hilfe und die Links
Biber
Biber 25.10.2006 um 18:26:34 Uhr
Goto Top
Hmm... ich setz das mal auf "Gelöst", weil die Frage (buchstabengetreu) richtig beantwortet ist.

Allerdings - die eigentliche Ursache ließe sich eventuell auch anders beseitigen.

Start->Ausführen->gpedit.msc
Computerkonfiguration->Administrative Vorlagen->System->Anmeldung
->Beim Neustart des Computers und bei der Anmeldung immer auf das Netzwerk warten.

Sofern Gruppenrichtlinien/gpedit.msc und die erforderlichen Rechte vorliegen.

Gruß
Biber
Schnacker
Schnacker 25.10.2006 um 22:19:32 Uhr
Goto Top
Netzwerk ist ja da, nur das verbundene Netzlaufwerk eben nicht.
bastla
bastla 25.10.2006 um 22:42:25 Uhr
Goto Top
Hallo Schnacker!

Das kommt davon, wenn man zuviele Möglichkeiten hat ... face-sad

Damit mein Beispiel oben funktioniert, hätte ich entweder meine ursprüngliche Version ohne Speichern des Rückgabewertes, also nur

Sh.Run strProg, 1 ,0

oder (weil es so eigentlich sauberer ist), die "Funktions"-Variante, dann aber natürlich mit den entsprechenden Klammern

intResult = Sh.Run(strProg, 1 ,0)

verwenden müssen. Abgesehen davon war es ja eigentlich nur zur "Abschreckung" gedacht, weil für diese Aufgabe ein Batch die einfachere Lösung ist.

Wenn es Dir nur um das "Sleep" gegangen ist, kannst Du derartiges natürlich auch für Batch-Dateien verwenden (gib einfach mal "sleep" am Prompt ein).

Grüße
bastla
Biber
Biber 26.10.2006 um 08:46:04 Uhr
Goto Top
@Schnacker
Und an welcher Stelle wird das "noch nicht verbundene Netzlaufwerk" gemapt?

Biber
Schnacker
Schnacker 26.10.2006 um 11:02:37 Uhr
Goto Top
Wird per Anmeldeskript für alle Benutzer verbunden. Das hier erwähnte sitzt im Autostart des Benutzers.