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
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
j'explique rapidement ce code
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?