freshman2017
Goto Top

VB Skript für mehrere Batch Befehle

Hallo,

zum Glück konntet Ihr mir schon sehr helfen, habe nun noch eine weitere Frage.
Ich nutze derzeit ein VB Skript um mehrere Batch Dateien hintereinander zu starten:

Set WshShell = CreateObject("Wscript.Shell")  
WshShell.Run "%userprofile%\Desktop\TEST\Skripte\1.bat", 0, True  
WshShell.Run "%userprofile%\Desktop\TEST\Skripte\2.bat", 0, True  
WshShell.Run "%userprofile%\Desktop\TEST\Skripte\3.bat", 0, True  
WshShell.Run "%userprofile%\Desktop\TEST\Skripte\4.bat", 0, True  
WshShell.Run "%userprofile%\Desktop\TEST\Skripte\5.bat", 0, True  
WshShell.Run "%userprofile%\Desktop\TEST\Skripte\6.bat", 0, True  
Set WshShell = Nothing

Gibt es hier die Möglichkeit anstelle der Angabe der Skriptdatei die einzelnen
Batchfehle einzutragen, damit man nur eine Datei, und zwar das VB Skript, mit dem ich die einzelnen Batch starte,
öffnen muss?

Beste Grüße,
freshman2017

Content-Key: 335474

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

Ausgedruckt am: 19.03.2024 um 10:03 Uhr

Mitglied: 132895
132895 19.04.2017 um 12:50:35 Uhr
Goto Top
WshShell.Run "cmd /c BLABLABEFEHL", 0, True   
Gruß
Mitglied: rubberman
rubberman 19.04.2017 aktualisiert um 12:55:36 Uhr
Goto Top
BLABLABEFEHL wird dann aber im Kommandozeilenkontext ausgeführt. Da gibt es einiges zu beachten und ohne den Inhalt der derzeitigen Batchdateien zu kennen lass ich mich nicht zu einem Statement hinreißen.

Ich sehe das eher als Designproblem. Statt Konsolefenster verbergen zu wollen, sollte man lieber prüfen was gleich mit VBScript abgefackelt werden kann.

Grüße
rubberman
Mitglied: 132895
132895 19.04.2017 aktualisiert um 13:05:23 Uhr
Goto Top
Zitat von @rubberman:

BLABLABEFEHL wird dann aber im Kommandozeilenkontext ausgeführt. Da gibt es einiges zu beachten
Logisch, wie bei allem sollte man sich vorher informieren face-smile cmd /?
Ich sehe das eher als Designproblem. Statt Konsolefenster verbergen zu wollen, sollte man lieber prüfen was gleich mit VBScript abgefackelt werden kann.
Würde ich auch sagen, da fehlt dann einfach oft noch das Wissen was nativ vielfach einfacher geht.
Mitglied: SlainteMhath
SlainteMhath 19.04.2017 um 13:07:06 Uhr
Goto Top
Moin,

Statt Konsolefenster verbergen zu wollen, sollte man lieber prüfen was gleich mit VBScript abgefackelt werden kann.
Oder am besten gleich per Powershell face-smile

lg,
Slainte
Mitglied: rubberman
rubberman 19.04.2017 um 13:12:38 Uhr
Goto Top
... wo wir aber wieder beim Konsolefenster wären ... face-wink
Mitglied: SlainteMhath
SlainteMhath 19.04.2017 um 13:24:49 Uhr
Goto Top
... wo wir aber wieder beim Konsolefenster wären ..
powreshell.exe  -windowstyle hidden the_script.ps1
face-smile
Mitglied: 132895
132895 19.04.2017 aktualisiert um 14:01:43 Uhr
Goto Top
Zitat von @SlainteMhath:

... wo wir aber wieder beim Konsolefenster wären ..
> powreshell.exe  -windowstyle hidden the_script.ps1
> 
face-smile
Ganz unsichtbar ist das dann beim Start aber auch nicht :-P, da musst du es per VBS(shell.run) oder sonstigem Wrapper kapseln.
Mitglied: SlainteMhath
SlainteMhath 19.04.2017 um 14:39:38 Uhr
Goto Top
*nachles*
Hey, von unsichtbar stand nichts in der Anforderung! Ticket closed face-smile
Mitglied: emeriks
emeriks 19.04.2017 um 18:22:16 Uhr
Goto Top
Hi,
Gibt es hier die Möglichkeit anstelle der Angabe der Skriptdatei die einzelnen Batchfehle einzutragen, damit man nur eine Datei, und zwar das VB Skript, mit dem ich die einzelnen Batch starte, öffnen muss?
Worauf kommt es Dir dabei an? Dass Du nur eine Datei editieren musst?

E.
Mitglied: freshman2017
freshman2017 19.04.2017 um 22:51:46 Uhr
Goto Top
Ja, genau. Habe mehrere Batch Dateien die ich aber nicht alle öffnen möchte, wenn ich eine Anpassung habe
Mitglied: SlainteMhath
SlainteMhath 20.04.2017 um 09:16:28 Uhr
Goto Top
Wenn du darauf eine Antwort möchtest, müsstest du uns mal den Inhalt der Batch-Files zeigen face-smile
Mitglied: mayho33
mayho33 20.04.2017 um 18:52:46 Uhr
Goto Top
Ich bin mir nicht ganz sicher was du meinst. Kann es sein, dass du alle CMDs in einem Ordner aufrufen willst ohne die Datei angeben zu wollen?

Da ginge das:

Dim objShell : Set objShell = CreateObject("Wscript.Shell")  
Dim objFso : Set objFso = CreateObject("Scripting.FileSystemObject")  

Set folder = objFso.GetFolder("myFilderPath")  
For Each item In folder.Files
	If(InStr(1, item.Name, ".bat", 1)) Then  
		' objShell.run "cmd /c " & chr(34) & item & chr(34), 0, true  
		WScript.Echo item.Name
	End If
Next
Mitglied: emeriks
emeriks 20.04.2017 aktualisiert um 19:10:44 Uhr
Goto Top
Eine Möglichkeit wäre, die Batch-Dateien aus dem Skript heraus temporär zu erzeugen, auszuführen und anschließend wieder zu löschen.
In etwa so:
Dim WshShell  : Set WshShell = CreateObject("Wscript.Shell")  
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")  
'temporäre Batch-Datei erzeugen  
Dim Batch1 : Batch1 = FSO.GetTempName & ".cmd"  
With FSO.CreateTextFile(Batch1, True)
  .WriteLine "Batch 1 - Zeile 1"  
  .WriteLine "Batch 1 - Zeile 2"  
  .WriteLine .......
  .Close
End With
'temporäre Batch-Datei ausführen, auf Ende warten  
WshShell.Run Batch1, 0, True
'temporäre Batch-Datei löschen  
FSO.DeleteFile Batch1, True
Mitglied: freshman2017
freshman2017 20.04.2017 um 19:17:24 Uhr
Goto Top
Hallo emeriks,
wie ist das mit mehreren Skripten? Die Lösung gefällt mir☺
Mitglied: emeriks
emeriks 20.04.2017 aktualisiert um 20:27:05 Uhr
Goto Top
Analog?
Dim WshShell  : Set WshShell = CreateObject("Wscript.Shell")  
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")  
'temporäre Batch-Datein erzeugen  
Dim Batch1 : Batch1 = FSO.GetTempName & ".cmd"  
Dim Batch2 : Batch2 = FSO.GetTempName & ".cmd"  
With FSO.CreateTextFile(Batch1, True)
  .WriteLine "Batch 1 - Zeile 1"  
  .WriteLine "Batch 1 - Zeile 2"  
  .WriteLine .......
  .Close
End With
With FSO.CreateTextFile(Batch2, True)
  .WriteLine "Batch 2 - Zeile 1"  
  .WriteLine "Batch 2 - Zeile 2"  
  .WriteLine .......
  .Close
End With
'temporäre Batch-Datei ausführen, auf Ende warten  
WshShell.Run Batch1, 0, True
WshShell.Run Batch2, 0, True
'temporäre Batch-Datei löschen  
FSO.DeleteFile Batch1, True
FSO.DeleteFile Batch2, True
Wobei sich die Frage stellt, warum überhaupt mehrere Batch-Dateien und nicht alles in einer. Aber das kannst nur Du beantworten.
Mitglied: freshman2017
freshman2017 21.04.2017 um 13:31:58 Uhr
Goto Top
Hallo emeriks,

danke für die Hilfestellung. Habe das mal an einer Batch Datei ausprobiert.

Erhalte aber leider den Fehler, dass ein ungültiges Zeichen enthalten ist,
kann dies aber nicht finden:

Dim WshShell  : Set WshShell = CreateObject("Wscript.Shell")  
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")  
'temporäre Batch-Datein erzeugen  
Dim Batch1 : Batch1 = FSO.GetTempName & ".cmd"  
'Batch1 = removesc  
With FSO.CreateTextFile(Batch1, True)
  .WriteLine "@ECHO off"  
  .WriteLine "SETLOCAL enabledelayedexpansion"  
  .WriteLine "SET quelle=%userprofile%\Desktop\Test\CSV-Exporte\csv-sicherung-%Date%.csv"  
  .WriteLine "SET ziel=%userprofile%\Desktop\Test\CSV-Exporte\Temp\csv-sicherung-wosc-%Date%.csv"  
  .WriteLine "IF EXIST %ziel% DEL /f %ziel%"  
  .WriteLine "FOR /f "delims=" %%i IN ('FINDSTR . %quelle%') DO ("  
  .WriteLine "SET ganze_zeile=%%i"  
  .WriteLine "SET ganze_zeile=!ganze_zeile:"=!"  
  .WriteLine "ECHO !ganze_zeile!"  
  .WriteLine "ECHO !ganze_zeile! >> %ziel%"  
  .WriteLine ")"  
  .Close
End With
'temporäre Batch-Datei ausführen, auf Ende warten  
WshShell.Run Batch1, 0, True
'temporäre Batch-Datei löschen  
FSO.DeleteFile Batch1, True

Hast Du einen Tipp für mich? Es sollen dann noch weitere Batch Dateien erzeugt werden.
Mitglied: 132895
Lösung 132895 21.04.2017 aktualisiert um 15:19:51 Uhr
Goto Top
Zeile 12 fehlen zwei zusätzliche Anführungszeichen. Wenn du "Anführungszeichen(")" in einem VBS-String verwendest müssen die immer verdoppelt werden:
  .WriteLine "FOR /f ""delims="" %%i IN ('FINDSTR . %quelle%') DO ("
und hier Zeile 14 ebenfalls:
  .WriteLine "SET ganze_zeile=!ganze_zeile:""=!"
Mitglied: freshman2017
freshman2017 24.04.2017 um 10:26:02 Uhr
Goto Top
Ich hatte das jetzt einmal wie folgt angepasst, leider erhalte ich derzeit ein Kompilierungsfehler, wenn ich die .vbs starten möchte.
Zeile 1 Zeichen 1 ist ungültig.

Jemand ´ne Idee?

Dim WshShell  : Set WshShell = CreateObject("Wscript.Shell")  
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")  
'temporäre Batch-Datein erzeugen  
Dim Batch1 : Batch1 = FSO.GetTempName & ".cmd"  
'Batch1 = removesc  
With FSO.CreateTextFile(Batch1, True)
  .WriteLine "@ECHO off"  
  .WriteLine "SETLOCAL enabledelayedexpansion"  
  .WriteLine "SET quelle=%userprofile%\Desktop\Test\CSV-Exporte\csv-sicherung-%Date%.csv"  
  .WriteLine "SET ziel=%userprofile%\Desktop\Test\CSV-Exporte\Temp\csv-sicherung-wosc-%Date%.csv"  
  .WriteLine "IF EXIST %ziel% DEL /f %ziel%"  
  .WriteLine "FOR /f ""delims="" %%i IN ('FINDSTR . %quelle%') DO ("  
  .WriteLine "SET ganze_zeile=%%i"  
  .WriteLine "SET ganze_zeile=!ganze_zeile:""=!"  
  .WriteLine "ECHO !ganze_zeile!"  
  .WriteLine "ECHO !ganze_zeile! >> %ziel%"  
  .WriteLine ")"  
  .Close
End With
'temporäre Batch-Datei ausführen, auf Ende warten  
WshShell.Run Batch1, 0, True
'temporäre Batch-Datei löschen  
FSO.DeleteFile Batch1, True
Mitglied: emeriks
emeriks 24.04.2017 um 10:29:09 Uhr
Goto Top
Copy&Paste-Fehler? Hat sich ein "unsichtbares" Zeichen eingeschlichen?
Mitglied: freshman2017
freshman2017 02.05.2017 um 09:44:30 Uhr
Goto Top
Es war tatsächlich ein Copy&Paste Fehler. - derzeit versuche ich noch einzubauen, dass er die "Batch - Temps" in einem anderen Ordner erstellt, als in dem, wo die VBA Datei liegt.
Mitglied: 132895
132895 02.05.2017 um 10:18:45 Uhr
Goto Top
Zitat von @freshman2017:

Es war tatsächlich ein Copy&Paste Fehler. - derzeit versuche ich noch einzubauen, dass er die "Batch - Temps" in einem anderen Ordner erstellt, als in dem, wo die VBA Datei liegt.
Batch1 = WshShell.ExpandEnvironmentStrings("%temp%") & "\" & FSO.GetTempName & ".cmd"   
Mitglied: freshman2017
freshman2017 02.05.2017 um 11:02:12 Uhr
Goto Top
Batch1 = WshShell.ExpandEnvironmentStrings("%temp%") & "\" & FSO.GetTempName & ".cmd"   

Wenn ich es richtig sehe, muss der obere Code ab Zeile 4 eingefügt werden?

'temporäre Batch-Datein erzeugen  
Dim Batch1 : Batch1 = WshShell.ExpandEnvironmentStrings("%temp%") & "\" & FSO.GetTempName & ".cmd"  

Dabei ist das Verzeichnis von Temp folgendes: %userprofile%\Desktop\Test\Temp\
%temp% müsste dann wo eingebaut werden? Stehe gerade auf dem Schlauch...?

Dim WshShell  : Set WshShell = CreateObject("Wscript.Shell")  
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")  
'temporäre Batch-Datein erzeugen  
Dim Batch1 : Batch1 = FSO.GetTempName & ".cmd"  
'Batch1 = removesc  
With FSO.CreateTextFile(Batch1, True)
  .WriteLine "@ECHO off"  
  .WriteLine "SETLOCAL enabledelayedexpansion"  
  .WriteLine "SET quelle=%userprofile%\Desktop\Test\CSV-Exporte\csv-sicherung-%Date%.csv"  
  .WriteLine "SET ziel=%userprofile%\Desktop\Test\CSV-Exporte\Temp\csv-sicherung-wosc-%Date%.csv"  
  .WriteLine "IF EXIST %ziel% DEL /f %ziel%"  
  .WriteLine "FOR /f ""delims="" %%i IN ('FINDSTR . %quelle%') DO ("  
  .WriteLine "SET ganze_zeile=%%i"  
  .WriteLine "SET ganze_zeile=!ganze_zeile:""=!"  
  .WriteLine "ECHO !ganze_zeile!"  
  .WriteLine "ECHO !ganze_zeile! >> %ziel%"  
  .WriteLine ")"  
  .Close
End With
'temporäre Batch-Datei ausführen, auf Ende warten  
WshShell.Run Batch1, 0, True
'temporäre Batch-Datei löschen  
FSO.DeleteFile Batch1, True
Mitglied: 132895
132895 02.05.2017 aktualisiert um 11:10:37 Uhr
Goto Top
Wenn ich es richtig sehe, muss der obere Code ab Zeile 4 eingefügt werden?
Richtig.

Was macht wohl
WshShell.ExpandEnvironmentStrings("%temp%") ?

Genau: Es holt sich den Temp-Ordner aus der Umgebungsvariable von Windows, und kombiniert mit dem temporären Dateinamen ergibt das dann einen kompletten Pfad zu einer cmd im Temp-Ordner.

Ab und zu die Doku studieren würde dir um ein vielfaches helfen und du müsstest nicht immer den armen Schlauch immer dafür verantwortlich machen, der kann nun wirklich nichts dafür face-smile.
http://www.robvanderwoude.com/vbstech_data_environment.php
Mitglied: freshman2017
freshman2017 02.05.2017 um 11:39:46 Uhr
Goto Top
Naja password, ich wollte die Temp Dateien in einen anderen Ordner schreiben, also bpws. unter: %userprofile%\Desktop\Test\Temp\
oder %userprofile%\Desktop\Test\dev\...
Mitglied: 132895
132895 02.05.2017 aktualisiert um 11:43:16 Uhr
Goto Top
Zitat von @freshman2017:

Naja password, ich wollte die Temp Dateien in einen anderen Ordner schreiben, also bpws. unter: %userprofile%\Desktop\Test\Temp\
oder %userprofile%\Desktop\Test\dev\...
Dann geb ihn doch einfach stattdessen an ?????
Batch1 = WshShell.ExpandEnvironmentStrings("%userprofile%") & "\Desktop\Test\Temp\" & FSO.GetTempName & ".cmd"   
Du denkst aber echt nicht mit ... zumal ich dir schon die Doku zum Befehl beschafft habe face-sad. Ist doch ein einfaches Verketten von Strings, nicht mehr nicht weniger.
Mitglied: emeriks
emeriks 02.05.2017 um 11:42:58 Uhr
Goto Top
Naja password, ich wollte die Temp Dateien in einen anderen Ordner schreiben, also bpws. unter: %userprofile%\Desktop\Test\Temp\
oder %userprofile%\Desktop\Test\dev\...
Na, dann mach es doch!
Dim Batch1 : Batch1 = WshShell.ExpandEnvironmentStrings("%temp%") & "\" & FSO.GetTempName & ".cmd"  
Was tut denn dieser Befehl genau? Er verkettet Strings. Also verkette!
Mitglied: freshman2017
freshman2017 14.05.2017 um 15:25:18 Uhr
Goto Top
Super, ich danke dir für deine Antwort.

Ich habe gerade noch gefragt, inwiefern es möglich ist, dass nach jedem Start und Ende eine Logdatei mit Datum und Uhrzeit angelegt wird. Jemand ne Idee?
Mitglied: rubberman
Lösung rubberman 14.05.2017 um 15:56:01 Uhr
Goto Top
Wieso willst du die denn jedes mal neu anlegen?
Option Explicit
Dim objFSO, strStart
Const logFile = "my.log"  
Const forAppending = 8

Set objFSO = CreateObject("Scripting.FileSystemObject")  

strStart = FormatDateTime(Now, vbGeneralDate)

' irgendwas ...  
WScript.Sleep 2000

With objFSO.OpenTextFile(logFile, forAppending, True)
  .WriteLine "Start: " & strStart & vbNewLine & "Ende:  " & FormatDateTime(Now, vbGeneralDate) & vbNewLine & "~~~~~~~~~~~~~~~~~"  
  .Close
End With
Grüße
rubberman
Mitglied: freshman2017
freshman2017 14.05.2017 um 16:39:27 Uhr
Goto Top
Hi rubberman, danke ;) eher falsch ausgedrückt. In meinem Script werden ja mehrere Batch-Dateien hintereinander ausgeführt. Batch 1, Batch 2 etc.

Wenn ich den Code richtig verstanden habe, wird mein eigentlichwr Code siehe oben, in Zeile 10 in deinem Code eingefügt?
Mitglied: rubberman
rubberman 14.05.2017 um 16:50:24 Uhr
Goto Top
Im Grunde ja. Du musst natürlich schauen welche Objekte du sowieso schon angelegt hast und somit meinen Code entsprechend anpassen/kürzen. Zeile 11 ist nur ein Beispiel dafür, dass irgendwas Zeit frisst. Die fällt natürlich auch raus.

Grüße
rubberman
Mitglied: freshman2017
freshman2017 26.06.2017 um 22:29:00 Uhr
Goto Top
Hallo emeriks,

hierzu habe noch eine Frage, denn die Temporären Dateien legt er ja derzeit im aktuellen Arbeitsverzeichnis an. Wie kann ich festlegen, dass er diese in einem bestimmten Verzeichnis anlegen soll? Gibt es hier die Möglichkeit?

Zitat von @emeriks:

Eine Möglichkeit wäre, die Batch-Dateien aus dem Skript heraus temporär zu erzeugen, auszuführen und anschließend wieder zu löschen.
In etwa so:
> Dim WshShell  : Set WshShell = CreateObject("Wscript.Shell")  
> Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")  
> 'temporäre Batch-Datei erzeugen  
> Dim Batch1 : Batch1 = FSO.GetTempName & ".cmd"  
> With FSO.CreateTextFile(Batch1, True)
>   .WriteLine "Batch 1 - Zeile 1"  
>   .WriteLine "Batch 1 - Zeile 2"  
>   .WriteLine .......
>   .Close
> End With
> 'temporäre Batch-Datei ausführen, auf Ende warten  
> WshShell.Run Batch1, 0, True
> 'temporäre Batch-Datei löschen  
> FSO.DeleteFile Batch1, True
> 

Beste Grüße
Mitglied: emeriks
emeriks 27.06.2017 um 08:07:28 Uhr
Goto Top
Viel weiter bis Du mit VBscript seit dem aber noch nicht gekommen ...
Ich schulmeister mal ein bisschen:
Wo (in welcher Zeile) wird festgelegt, dass die Datei im Temp landet?
Und wenn Du das gefunden hast: Wie könnte man das anpassen?
Mitglied: freshman2017
freshman2017 27.06.2017 um 08:41:46 Uhr
Goto Top
Hi emeriks,

bisher habe ich folgendes gehabt, wobei ich Hilfe benötige, wie ich "temp" definieren kann.

Dim WshShell  : Set WshShell = CreateObject("Wscript.Shell")  
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")  
'temporäre Batch-Datei erzeugen  
Dim Batch1 : Batch1 = WshShell.ExpandEnvironmentStrings("%temp%") & "\" & FSO.GetTempName & ".cmd"  
With FSO.CreateTextFile(Batch1, True)
  .WriteLine "Batch 1 - Zeile 1"  
  .WriteLine "Batch 1 - Zeile 2"  
  .WriteLine .......
  .Close
End With
'temporäre Batch-Datei ausführen, auf Ende warten  
WshShell.Run Batch1, 0, True
'temporäre Batch-Datei löschen  
FSO.DeleteFile Batch1, True

Folgendes habe ich versucht zwischen Zeile 2 und 3 (oben) einfügen.
temp = objShell.ExpandEnvironmentStrings("%userprofile%") & "\Desktop\Test\Temp"   

Hatte gerade mal getetestet, aber das funktioniert noch nicht so. Siehst Du woran es liegt?
Mitglied: emeriks
emeriks 27.06.2017 aktualisiert um 12:52:39 Uhr
Goto Top
Hatte gerade mal getetestet, aber das funktioniert noch nicht so. Siehst Du woran es liegt?
Na klar, weil Du es noch nicht soweit verstanden hast, dass Du beim Zusammenkopieren der Zeilen erkennen könntest, was Du anpassen musst ...
Dim Batch1 : Batch1 = WshShell.ExpandEnvironmentStrings("%temp%") & "\" & FSO.GetTempName & ".cmd"
temp = objShell.ExpandEnvironmentStrings("%userprofile%") & "\Desktop\Test\Temp"
Fällt Dir da irgendwas auf?
Und "Batch1" und "temp" sehen auch irgendwie anders aus.

E:
Und %TEMP% ist eine Umgebungsvariable und nicht etwa eine im VBscript.
Mitglied: freshman2017
freshman2017 27.06.2017 um 09:36:06 Uhr
Goto Top
Ahhhhh, .... dann wäre es ja so, oder?

Dim Batch1 : Batch1 = WshShell.ExpandEnvironmentStrings("%userprofile%") & ""\Desktop\Test\Temp" & FSO.GetTempName & ".cmd"  

Dim WshShell  : Set WshShell = CreateObject("Wscript.Shell")  
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")  
'temporäre Batch-Datei erzeugen  
Dim Batch1 : Batch1 = WshShell.ExpandEnvironmentStrings("%userprofile%") & ""\Desktop\Test\Temp" & FSO.GetTempName & ".cmd"  
With FSO.CreateTextFile(Batch1, True)
  .WriteLine "Batch 1 - Zeile 1"  
  .WriteLine "Batch 1 - Zeile 2"  
  .WriteLine .......
  .Close
End With
'temporäre Batch-Datei ausführen, auf Ende warten  
WshShell.Run Batch1, 0, True
'temporäre Batch-Datei löschen  
FSO.DeleteFile Batch1, True
Mitglied: freshman2017
freshman2017 27.06.2017 um 11:16:23 Uhr
Goto Top
Ich bräuchte da nochmal einen Tipp face-smile
Mitglied: emeriks
Lösung emeriks 27.06.2017 um 12:52:10 Uhr
Goto Top
Dim Batch1 : Batch1 = WshShell.ExpandEnvironmentStrings("%userprofile%") & "\Desktop\Test\Temp\" & FSO.GetTempName & ".cmd"  
oder gleich
Dim Batch1 : Batch1 = WshShell.ExpandEnvironmentStrings("%userprofile%") & "\Desktop\Test\Temp\Batch1.cmd"  

Beachte, dass der Pfad "%userprofile%\Desktop\Test\Temp" bereits existieren muss. Oder Du erstellst ihn im Script.