killtec
Goto Top

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ß

Content-Key: 2058843631

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

Printed on: April 24, 2024 at 16:04 o'clock

Mitglied: 1915348599
1915348599 Mar 04, 2022 updated at 08:47:59 (UTC)
Goto Top
net file /?
eintippen und die weißt wie's geht.

net file [Id] /close
Member: killtec
killtec Mar 04, 2022 at 09:03:58 (UTC)
Goto Top
Hi,
danke für den Hinweis. Kann man das auch anhand des Pfades anstatt der ID machen?
Mitglied: 1915348599
Solution 1915348599 Mar 04, 2022 updated at 09:23:31 (UTC)
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  
Member: killtec
killtec Mar 04, 2022 updated at 11:07:15 (UTC)
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ß
Mitglied: 1915348599
1915348599 Mar 04, 2022 updated at 09:46:31 (UTC)
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.
Member: killtec
killtec Mar 04, 2022 at 09:46:28 (UTC)
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