Bonjour à tous, je travaille actuellement sur un script de Wake on Lan pour mon entreprise, hors je me heurte a un problème que je n'arrive pas a résoudre, je fais appel a un fichier CSV ou j'ai extrait Nom / IP / Mac des PC's hors lorsque j’essaye de faire un findstr pour trouver le bon PC dans le .csv il me retourne dans le fichier .txt que je crée uniquement le chemin du CSV et non les données internes.

Hors quand je tape la commande entière seule dans mon cmd.exe en remplaçant les variables par les infos en dur ça fonctionne, j'obtiens bien mon fichier avec mes infos.

Quand je remplace les variables par les infos en dur dans le batch, ça ne fonctionne pas.

J'ai en premier lieu pensé a une erreur sur les variables, et je les ai testées une par une et elle semble fonctionner, il doit donc y avoir une erreur dans le script. Mais je n'arrive pas a voir ou.

Merci d'avance pour votre aide,

Voici le script :

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
@ echo off
cls

set /p pc= < \\Monserveur\public\WOL\listepc.txt
echo %pc%

pause

set up=0

set date=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%

set log=\\Monserveur\public\WOL\log\%date%.log

set cvs=\\Monserveur\public\WOL\liste.csv

set pgrm=\\Monserveur\public\WOL\prog

set tmp=\\Monserveur\public\WOL\tmp

echo _________________________________________________________ >> %log%

echo ------------------------------------ >> %log%
echo Rapport de la tâche de %computername% du %date% >> %log%
echo ------------------------------------ >> %log%
echo _______________________________________________________ >> %log%


cd \
echo %pc% >temp.txt
for /F %%i IN (temp.txt) DO (PING -n 2 -w 4 %%i | FIND "TTL=">NUL
IF NOT ERRORLEVEL 1 goto ok
)
goto non

:non
echo %pc% éteint >> %log%
goto fin 

:ok
echo %pc% deja allumé >> %log%
set up=1

:fin
del temp.txt 



if "%up%"=="0" goto exec
goto fin2

:exec
findstr "%pc%" %cvs% > %tmp%\mac.txt


FOR /f "tokens=1 delims=;" %%i in (%tmp%\mac.txt) do %pgrm%\wol.exe %%i
echo %pc% démarrer >> %log%

pause


:fin2


:boucle
set /a count = count + 1
if %count%==30000 goto finboucle
goto boucle
:finboucle 


if "%up%"=="0" goto exec2
goto fin3
:exec2
shutdown -s -m \ %%p
echo %pc% extinction >> %log%
goto debut



:fin3

pause