Fermeture automatique de fichiers

Fermé
infomag Messages postés 188 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juillet 2017 - 13 juin 2017 à 11:59
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 - 4 juil. 2017 à 09:20
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 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918
Modifié le 13 juin 2017 à 18:48
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 jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juillet 2017 10
15 juin 2017 à 16:24
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 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918
15 juin 2017 à 16:51
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 jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juillet 2017 10
15 juin 2017 à 16:53
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 jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juillet 2017 10
15 juin 2017 à 16:53
Merci ;) !
0
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918 > infomag Messages postés 188 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juillet 2017
Modifié le 15 juin 2017 à 17:02
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 jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juillet 2017 10
19 juin 2017 à 10:53
Waouh, super, merci beaucoup !
J'essaierai demain matin à la première heure, je te tiens au courant !
0
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918
27 juin 2017 à 11:47
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 jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juillet 2017 10
27 juin 2017 à 12:40
ok génial, j'essaierai jeudi matin, merci !!!!
0
infomag Messages postés 188 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juillet 2017 10
29 juin 2017 à 10:44
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 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918 > infomag Messages postés 188 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juillet 2017
Modifié le 29 juin 2017 à 10:56
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 jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juillet 2017 10
29 juin 2017 à 12:54
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 jeudi 27 mars 2008 Statut Membre Dernière intervention 11 juillet 2017 10
3 juil. 2017 à 16:55
Bonjour à tous,

Quelqu'un aurait une idée ?

Merci beaucoup !!!
0