killtec

Geöffnete Datei schließen per cmd

Hallo,
ich möchte eine geöffnete Datei per CMD beenden (mit Bordmitteln). Das was man auf dem Bild sieht als script.

geoeffnete_datei

Es geht darum, dass ich eine Datei ersetzen muss (regelmäßig) und ich sicher gehen will, dass die keiner mehr geöffnet hat. Es handelt sich um eine Excel-Datei.

Als OS ist ein Server 2016.

Befehl wäre als cmd. Befehl ganz gut, da im Anschluss noch der robocopy aufruf kommt.
Hat jemand schon so etwas umgesetzt?

Gruß
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 2058843631

Url: https://administrator.de/forum/geoeffnete-datei-schliessen-per-cmd-2058843631.html

Ausgedruckt am: 03.05.2025 um 06:05 Uhr

1915348599
1915348599 04.03.2022 aktualisiert um 09:47:59 Uhr
Goto Top
net file /?
eintippen und die weißt wie's geht.

net file [Id] /close
killtec
killtec 04.03.2022 um 10:03:58 Uhr
Goto Top
Hi,
danke für den Hinweis. Kann man das auch anhand des Pfades anstatt der ID machen?
1915348599
Lösung 1915348599 04.03.2022 aktualisiert um 10:23:31 Uhr
Goto Top
Zitat von @killtec:

Hi,
danke für den Hinweis. Kann man das auch anhand des Pfades anstatt der ID machen?
Mit nem For-Loop und findstr...
@echo off
for /f "tokens=1" %%a in ('net file ^|findstr /ilc:"\Liste.xlsx" 2^>nul') do net file %%a /close  

Alternativ kannst du auch openfiles /? nehmen.
for /f "tokens=1" %%a in ('openfiles ^|findstr /ilc:"\Liste.xlsx" 2^>nul') do openfiles /disconnect /ID %%a  
killtec
killtec 04.03.2022 aktualisiert um 12:07:15 Uhr
Goto Top
Hi,
Danke für diene Rückmeldung. Habe nach deiner ersten Antwort noch ein bisschen gegoogelt. Der Input war schon super face-smile
Habe einen Powershell Befehl gefunden der das auch erledigt.
Get-SmbOpenFile | Where-Object path -eq $close | Close-SmbOpenFile

komplettes Script:
[string]$source="E:\Quellordner"  
[string]$dest="E:\zielordner"  
[string]$file="Dateiname.xlsm"  
[string]$close=$dest +"\" +$file  
Get-SmbOpenFile | Where-Object path -eq $close | Close-SmbOpenFile -force
robocopy $source $dest $file

Gruß
1915348599
1915348599 04.03.2022 aktualisiert um 10:46:31 Uhr
Goto Top
Hättest du gleich Powershell und nicht nur cmd mit ins Spiel gebracht hätte ich dir das gleich liefern können face-wink...
Aber die meisten die hier fragen haben mit PS ja meist nichts am Hut bzw. sträuben sich davor, warum auch immer.
killtec
killtec 04.03.2022 um 10:46:28 Uhr
Goto Top
sorry face-sad - hatte das robocopy und variablen im Kopf, daher bin ich bei cmd hängen geblieben.
Dennoch hast du mir geholfen indem du mich in die passende Richtung geschickt hast face-smile