altago

Batch zum Öffnen und Protokollieren, wann Datei geschlossen wurde

Hallo zusammen,

ich hoffe ich habe die Frage korrekt zugeordnet.

Ich benötige eine Batch Datei, die eine bestimmte Excel Liste öffnet, diese dann in ein Log schreibt.
Der Batch soll aber so lange laufen, bis die Excel Liste geschlossen wurde.
Dieses schließen sollte möglichst auch protokolliert werden.

Die User, die diese Excel Liste per Batch öffnen, haben keinen Zugriff auf den Taskmanager!

Hier mein erster Ansatz, der das öffnen schon mal Protokolliert:

@echo off
CLS

start "" "Netzwerkpfad\Exceldateiname.xlsx"  

echo Urlaubskalender geöffnet am %DATE% um %TIME:~-11,2%:%TIME:~-8,2% Uhr von %USERNAME% >> \\Netzwerkpfad\logging.log

exit

Leider fehlt mit das warten der Batch Datei und das Protokollieren beim schließen der Excel Liste.

Vielen Dank im Voraus.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 842828846

Url: https://administrator.de/forum/batch-zum-oeffnen-und-protokollieren-wann-datei-geschlossen-wurde-842828846.html

Ausgedruckt am: 12.05.2025 um 03:05 Uhr

IceAge
IceAge 28.06.2021 aktualisiert um 16:58:13 Uhr
Goto Top
Probier mal folgendes... Pfade müssten ggfs. angepasst werden:
@echo off
CLS

echo Urlaubskalender geoeffnet am %DATE% um %TIME:~-11,2%:%TIME:~-8,2% Uhr von %USERNAME% >> \\Netzwerkpfad\logging.log
call "C:\Program Files (x86)\Microsoft Office\Office14\excel.exe" "Netzwerkpfad\Exceldateiname.xlsx"  
echo Urlaubskalender geschlossen am %DATE% um %TIME:~-11,2%:%TIME:~-8,2% Uhr von %USERNAME% >> \\Netzwerkpfad\logging.log
exit

Grüße I.
ALTAGO
ALTAGO 28.06.2021 um 17:05:30 Uhr
Goto Top
Das klappt soweit super, solange die User Excel haben.
Sollte der User aber nur eine OpenOffice Lösung in Form Libre haben, läuft er hier auf Fehler.
Das ist die Frage, ob er prüfen kann, ob Excel vorhanden ist... oder Libre
lcer00
lcer00 28.06.2021 um 17:18:48 Uhr
Goto Top
Hallo,
Zitat von @ALTAGO:
Könntest Du die Frage bitte als Frage, und nicht als Wissensbeitrag klassifizieren? Müsste über Bearbeiten des ursprünglichen Posts gehen.

Grüße

lcer
em-pie
em-pie 28.06.2021 um 17:30:29 Uhr
Goto Top
Moin,
Zitat von @ALTAGO:

Das klappt soweit super, solange die User Excel haben.
Sollte der User aber nur eine OpenOffice Lösung in Form Libre haben, läuft er hier auf Fehler.
Das ist die Frage, ob er prüfen kann, ob Excel vorhanden ist... oder Libre

Du gibst doch vor, mit was er öffnen soll!
Prüfe also, ob Excel vorhanden ist (If exists) oder LibreOffice (If exists) und schreibe den PFad jeweils in eine eigene Variable.
Wenn weder das eine, noch das andere vorhanden ist, zeige eine Meldung alá "Bisd du bescheiat, de Datei zua öffna?"

Gruß
em-pie
ALTAGO
ALTAGO 28.06.2021 um 19:48:01 Uhr
Goto Top
Könntest Du die Frage bitte als Frage, und nicht als Wissensbeitrag klassifizieren? Müsste über Bearbeiten des ursprünglichen Posts gehen.


Ist erledigt face-smile
ALTAGO
Lösung ALTAGO 29.06.2021 um 07:25:43 Uhr
Goto Top
Zitat von @em-pie:

Du gibst doch vor, mit was er öffnen soll!
Prüfe also, ob Excel vorhanden ist (If exists) oder LibreOffice (If exists) und schreibe den PFad jeweils in eine eigene Variable.
Wenn weder das eine, noch das andere vorhanden ist, zeige eine Meldung alá "Bisd du bescheiat, de Datei zua öffna?"

Hat funktioniert!
Hier mein genutzter Code:

@echo off
CLS

if exist "C:\Program Files (x86)\Microsoft Office\Office15\excel.exe" goto :excel  
if not exist "C:\Program Files (x86)\Microsoft Office\Office15\excel.exe" goto :libre  

:excel
echo Urlaubskalender geöffnet am %DATE% um %TIME:~-11,2%:%TIME:~-8,2% Uhr von %USERNAME% mit Excel >> \\Netzwerkpfad\logging.log
call "C:\Program Files (x86)\Microsoft Office\Office15\excel.exe" "\\Netzwerkpfad\Exceldateiname.xlsx"  
echo Urlaubskalender geschlossen am %DATE% um %TIME:~-11,2%:%TIME:~-8,2% Uhr von %USERNAME% >> \\Netzwerkpfad\logging.log
goto :end

:libre
echo Urlaubskalender geöffnet am %DATE% um %TIME:~-11,2%:%TIME:~-8,2% Uhr von %USERNAME% mit Libre >> \\Netzwerkpfad\logging.log
call "C:\Program Files (x86)\LibreOffice\program\scalc.exe" "\\Netzwerkpfad\Exceldateiname.xlsx"  
echo Urlaubskalender geschlossen am %DATE% um %TIME:~-11,2%:%TIME:~-8,2% Uhr von %USERNAME% >> \\Netzwerkpfad\logging.log
goto :end

:end
exit
em-pie
em-pie 29.06.2021 aktualisiert um 10:47:10 Uhr
Goto Top
Zitat von @ALTAGO:
Hat funktioniert!
Hier mein genutzter Code:
[..]

Ich hätte es etwas anders gelöst:
@echo off
CLS
SET LOG=\\Netzwerkpfad\logging.log
SET XLS="\\Netzwerkpfad\Exceldateiname.xlsx"  
SET PGM=""  

if exist "C:\Program Files (x86)\Microsoft Office\Office15\excel.exe" SET PGM="C:\Program Files (x86)\Microsoft Office\Office15\excel.exe"  
if exist "C:\Program Files (x86)\LibreOffice\program\scalc.exe" SET PGM = "C:\Program Files (x86)\LibreOffice\program\scalc.exe"  

if %PGM% EQU "" goto end  

echo Urlaubskalender geöffnet am %DATE% um %TIME:~-11,2%:%TIME:~-8,2% Uhr von %USERNAME% mit %PGM%>> \\Netzwerkpfad\logging.log
call %PGM% %XLS%
echo Urlaubskalender geschlossen am %DATE% um %TIME:~-11,2%:%TIME:~-8,2% Uhr von %USERNAME% >> %LOG%
goto :end

:end
exit