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-Key: 42955

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

Printed on: April 19, 2024 at 02:04 o'clock

Member: bastla
bastla Oct 24, 2006 at 19:01:27 (UTC)
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
Member: Schnacker
Schnacker Oct 24, 2006 at 19:33:29 (UTC)
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...
Member: bastla
bastla Oct 24, 2006 at 20:44:37 (UTC)
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
Member: Schnacker
Schnacker Oct 25, 2006 at 12:30:38 (UTC)
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...
Member: Schnacker
Schnacker Oct 25, 2006 at 16:00:25 (UTC)
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
Member: Biber
Biber Oct 25, 2006 at 16:26:34 (UTC)
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
Member: Schnacker
Schnacker Oct 25, 2006 at 20:19:32 (UTC)
Goto Top
Netzwerk ist ja da, nur das verbundene Netzlaufwerk eben nicht.
Member: bastla
bastla Oct 25, 2006 at 20:42:25 (UTC)
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
Member: Biber
Biber Oct 26, 2006 at 06:46:04 (UTC)
Goto Top
@Schnacker
Und an welcher Stelle wird das "noch nicht verbundene Netzlaufwerk" gemapt?

Biber
Member: Schnacker
Schnacker Oct 26, 2006 at 09:02:37 (UTC)
Goto Top
Wird per Anmeldeskript für alle Benutzer verbunden. Das hier erwähnte sitzt im Autostart des Benutzers.