Überprüfung in Batch Datei
Hallo,
ich habe eine ganz einfache Batch Datei sie einfach nur 16 Excell Dateien öffnen soll
@echo off
echo Diese Datei öffnet die Excel Dateien
Start abc
Start def
Start usw
:end
Wie kann ich überprüfen ob alle Datein geöffnet wurden?
Wenn eine nicht geöffnet wurde soll eine kurze Fehlermeldung kommen die eine Nutzereingabe erfordert.
Danke für die Rückmeldungen
MfG
TKaCbGinD
ich habe eine ganz einfache Batch Datei sie einfach nur 16 Excell Dateien öffnen soll
@echo off
echo Diese Datei öffnet die Excel Dateien
Start abc
Start def
Start usw
:end
Wie kann ich überprüfen ob alle Datein geöffnet wurden?
Wenn eine nicht geöffnet wurde soll eine kurze Fehlermeldung kommen die eine Nutzereingabe erfordert.
Danke für die Rückmeldungen
MfG
TKaCbGinD
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 259334
Url: https://administrator.de/forum/ueberpruefung-in-batch-datei-259334.html
Ausgedruckt am: 13.05.2025 um 02:05 Uhr
7 Kommentare
Neuester Kommentar
Moin TKaCbGinD,
oder du machst das mit einem VBS-Script:
Grüße Uwe
oder du machst das mit einem VBS-Script:
On Error Resume Next
dim arrArbeitsmappen,objExcel, wb
'Pfade der Arbeitsmappen welche geöffnet werden sollen
arrArbeitsmappen = Array("C:\Datei1.xlsx","C:\Datei2.xlsx","C:\Datei3.xlsx")
'Excel sichtbar starten
Set objExcel = CreateObject("Excel.Application")
objExcel.DisplayAlerts = False
objExcel.Visible = True
' Für jede Arbeitsmappe
For i = 0 To UBound(arrArbeitsmappen)
' öffne die Arbeitsmappe
set wb = objExcel.Workbooks.Open(arrArbeitsmappen(i))
'wenn die Mappe schreibgeschützt geöffnet wurde ist sie gesperrt, also breche den Vorgang ab
if wb.ReadOnly then
msgbox "Die Arbeitsmappe " & arrArbeitsmappen(i) & " ist durch einen anderen Benutzer gesperrt. Der Vorgang kann nicht fortgesetzt werden", vbExclamation
objExcel.DisplayAlerts = True
wscript.quit
End If
Next
Ich möchte halt auf einen Blick wissen ob alle Dateien geöffnet wurden und nicht eine durch einen User blockiert wurde.
Hab das oben mal dahingehend angepasst. Aber wieso macht ihr die Überprüfung und das Öffnen nicht direkt schon in dem Makro, wie mit der obigen VBS? Dann weiß das Makro nämlich schon selber ob die Files durch einen anderen User blockiert sind (ReadOnly), und fängt erst gar keine Verarbeitung an !Grüße Uwe
Gibt es also eine Möglichkeit das ich im Makro oder in der Batch kurz abfrage ob alle Dateien offen sind bevor das "Hauptmakro" startet?
Siehe den Code oben, du kannst ja anstatt der MsgBox eine Variable auf True setzen wenn nicht alle Files geöffnet werden konnten. Diese überprüfst du zum Schluss und entscheidet damit letztendlich ob das Makro gestartet wird oder nicht, ganz einfach.Also das ganze in euer Makro einbauen, feddich. Ich sehe hier das Problem nicht ...
Per purem Batch kannst du erst mal knicken, außer du startest das VBS-Script aus der Batch, das geht natürlich auch:
cscript.exe //NOLOGO c:\script.vbs
auch einen Wert in die Batch zurückgeben je nachdem ob alle Files geöffnet wurden oder nicht, dann kannst du entscheiden was geschieht.
Die Möglichkeiten sind hier vielfältig.
Aber wo muss man sich umgewöhnen wenn das alles doch nur ein Doppelklick ist ???