Bonjour messieurs et mesdames
La petite question de fou, peut-être une colle pour beaucoup et certainement pas la possibilité de le faire en faite.
Je travaille dans une entreprise où un service informatique bloque absolument tout et où l'installation dune solution simple à des problèmes basiques n'est pas possible, je dois donc trouver des solutions pour contourner ses faux problèmes.
Ceci étant dit, il n'est pas la peine de me dire de voir avec powershell ou tout autre méthode (seulement les logiciels fourni de base avec windows XP) pour résoudre mon problème
Ma situation, sur un espace serveur commun avec mes collègues, j'ai un emplacement sur un serveur où les personnels viennent créer un dossier dans lequel plusieurs fichiers sont mis. Ces fichiers servent à une autre personne de passer des commandes. Le soucis, c'est qu'il n'est pas forcément facile de communiquer (distance, planning), du coup ce que je suis en train de mettre en place est un petit "espion" qui vient scruter toutes les heures le dossier contenant les sous dossiers qui sont ajoutés. Malheureusement, malgré tout nos efforts, il n'est pas possible d'indiquer dans l'arborescence ou dans le nom de dossier le nom de l'emetteur de ce dossier.
Pour l'instant, ce que j'ai réussi à faire en .bat
j'explique rapidement ce code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 @echo off set heure_actuelle=%time:~0,2%:%time:~3,2%:%time:~6,2% set tempo1=0 @FOR /f "tokens=2 delims=," %%i in (fichier.txt) do set derniere_date_da=%%i @FOR /f "tokens=3 delims=," %%i in (fichier.txt) do set derniere_heure_da=%%i @FOR /f "tokens=4 delims=," %%i in (fichier.txt) do set dernier_nbr=%%i if %date% EQU %derniere_date_da% (goto debut_boucle1) else (goto moment_different) :debut_boucle1 if %tempo1% ==1000 ( goto moment_different) set /a tempo1=%tempo1%+1 goto debut_boucle1 :moment_different Set dossier=0 for /D %%i in (T:\SIB\SRM/*) do Set /A dossier+=1 if %dossier% NEQ %dernier_nbr% (goto ctrl_ligne) else (echo en mémoire %dernier_nbr% actuelle il y a %dossier%) set tempo1=0 goto debut_boucle1 :ctrl_ligne @FOR /f "tokens=1 delims=," %%i in (fichier.txt) do set ligne_lu=%%i if %ligne_lu% EQU 1 (goto MAJ) set tempo1=0 goto moment_different :MAJ set /a nouveau=%dossier%-%dernier_nbr% erase NouvelleCde.html dir /O:-D T:\SIB\SRM > tmp.txt type tmp.txt | find /v "volume" | find /v "parameters">tmp2.txt type tmp2.txt | find /v ".." | find /v "parameters">tmp.txt type tmp.txt | find /v "T:\SIB" | find /v "parameters">tmp2.txt type tmp2.txt | find /v "." | find /v "parameters">tmp.txt type tmp.txt | find /v "libres" | find /v "parameters">tmp2.txt type tmp2.txt | find /v "fichier" | find /v "parameters">tmp.txt type tmp.txt | find /v "toucher" | find /v "parameters">tmp2.txt erase tmp.txt set separa1="<p>" set separa2="</p>" set /a nouveau=%nouveau% +2 for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . tmp2.txt') do if %%i geq 2 if %%i leq %nouveau% echo %separa1% %%j %separa2% >> tmp.txt erase tmp2.txt echo 1,%date%,%heure_actuelle%,%dossier% > fichier.txt set tempo1=0 @FOR /f "tokens=4 delims=," %%i in (fichier.txt) do set dernier_nbr=%%i echo %separa1% Voici les derniers fichiers modifiés %separa2% >> NouvelleCde.html type tmp.txt >> NouvelleCde.html erase tmp.txt NouvelleCde.html goto moment_different pause
dans un premier fichier texte où j'ai écris sur la première ligne les informations du dernier scans (jour, heure, nbr de dossier), je viens récupérer ces données dans ces variables
après à la fin d'un compte à rebours (ici 500) je viens compter le nombre de dossier présent et le comparer à mon nbr de dossier du fichier précédemment décris
si ces nombres sont identique, je repars dans le compte à rebours
si ils sont différents, je détermine le nombre de dossier ajouter
avec un dir, je copie et traite ce répertoire pour avoir à la fin que les dossier qui m’intéresse, je fais un tri par rapport à la date.
La liste de mes nouveaux dossiers est envoyée sur un fichier html qui s'ouvre à la fin.
ce que je voudrais, c'est récupéré un identifiant soit de la machine qui l'a envoyé soit de l'utilisateur qui l'a créé (ip, session windows)
une idée?
Partager