Fermeture automatique de fichiers

infomag Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   -  
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaiterais fermer automatiquement 2 fichiers qui sont en lecture seule sur les postes de mes utilisateurs ; la fermeture aurait lieu la nuit, afin que l'on puisse remplacer ces deux fichiers par deux autres (suite à mise à jour de la bdd).

La commande net file me paraît pas mal, mais quand je fais un essai sur mon ordi, le fichier reste ouvert (alors que la commande s'est bien exécutée...).

Le serveur est sous Windows 2008 r2.

Savez-vous ce que je dois faire ?

Merci par avance !



3 réponses

barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Bonjour,

Tu as bien utilisé NET FILE avec l'ID du fichier et le commutateur /close ?


“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
0
infomag Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   10
 
Oui !

Je récupère l'id en faisant un NET CLOSE (1ère colonne de ce qui s'affiche), c'est bien cela ? (mais ce qui est bizarre il est vrai, c'est que pour un même fichier, j'ai plusieurs lignes et donc plusieurs id possibles...).

Merci !!!
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Est-ce que tu as bien lancé l'invite de commandes en administrateur ?

Quels sont les noms des fichiers que tu désires fermer ?
0
infomag Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   10
 
Oui, je suis loguée en admin sur le serveur...
Pour le nom de fichier : test1.xlsx par exemple
0
infomag Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   10
 
Merci ;) !
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > infomag Messages postés 188 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai improvisé un petit script batch :

@echo off

for /L %%A in (0,1,100) do (
echo ID : %%A
(net file %%A | findstr /I "test1.xlsx") && (call :fermeture %%A)
)

pause
exit

:fermeture
net file %1 /close
ping -n 1 localhost > nul
(net file %1 | findstr /I "test1.xlsx") && (call :fermeture %1)
goto :eof
rem

Ce script est à exécuter à l'aide du clic-droit "executer en tant qu'admin"

Dis-moi si ça va mieux ou pas.
0
infomag Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   10
 
Waouh, super, merci beaucoup !
J'essaierai demain matin à la première heure, je te tiens au courant !
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Ok, alors au lieu de balayer une plage d'ID, on va chercher directement l'ID du fichier :

@echo off
chcp 1252 > nul
setlocal enableextensions enableDelayedExpansion

set "dv==::"
if defined !dv! (
echo. & echo ##### Veuillez lancer le script en Administrateur #####
timeout /t 5
endlocal & exit
)

for %%E in (test1.xls test2.xls) do (

for /f "tokens=1 delims= " %%A in ('net file ^| findstr /i "%%E"') do (call :fermeture %%A "%%E")

)

echo. & echo ##### Traitement terminé #####
echo. & pause
endlocal
exit

:fermeture
echo. & echo ID %1 en cours de fermeture ...
net file %1 /close
ping -n 2 localhost > nul
(>nul 2>&1 net file %1 | findstr /i "%~2") && (call :fermeture %1)
goto :eof
rem

0
infomag Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   10
 
ok génial, j'essaierai jeudi matin, merci !!!!
0
infomag Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   10
 
Bonjour !

Voilà, j'ai essayé, tout s'est bien passé, j'ai eu le message 'Traitement terminé' mais le fichier est resté ouvert...
Vois-tu ce que cela peut être ?

Merci par avance !
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > infomag Messages postés 188 Date d'inscription   Statut Membre Dernière intervention  
 
Chez moi aussi le fichier excel reste ouvert, mais ce qui est plus bizarre c'est que quand tu fais un NET FILE tu vois le fichier dans la liste mais c'est marqué :
"verrous = 0"

Donc ça veut dire que l'ouverture du fichier n'active pas forcément un verrou, ou bien ça veut dire que ce type de verrou n'est pas pris en compte par NET FILE
0
infomag Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   10
 
Mais c'est vrai que quand je fais un Net file sur le fichier avec son id, ça ne le ferme pas :(
0
infomag Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   10
 
Bonjour à tous,

Quelqu'un aurait une idée ?

Merci beaucoup !!!
0