Résolu Script BATCH

spitulo

Habitué
Bonjour,

J'ai sous la main un script BATCH, et je voudrais avoir si vous pouviez m'aider à le décortiquer, et me dire ce qu'il fait concrêtement sur l'ordinateur ?


Voici son contenu :


[cpp]set max=50000
set Path=\\pc-perso\Partage
set pathlog=\\pc-perso\Partage\quota.log

set p1=0
echo off
cls

if exist %Pathlog% GOTO FILEEXIST
echo ----------LOG QUOTA-------- >> %Pathlog%
echo. >> %Pathlog%

:FILEEXIST
for /r %Path% %%i in (*.*) do set /a p1=!p1!+%%~zi/1048

if /i %p1% gtr %max% GOTO ERROR
echo [%DATE%][%TIME%]- %USERNAME% - %p1% ko - OK >> %Pathlog%
GOTO END

:ERROR
echo [%DATE%][%TIME%]- %USERNAME% - %p1% ko - Dépassement du quota de %max% ko ! >> %Pathlog%
@echo

:END[/cpp]



Merci d'avance.
 

zeb

Modérateur
Meilleure réponse
Salut,

Plutôt que de te le faire, je vais t'aider à le faire toi-même, au moins pour commencer.
Et si tu as encore des soucis, tu pourras poser des questions précises.

Utilise la commande HELP dans une session DOS sur SET et FOR :[fixed]C:\> HELP SET
C:\> HELP FOR[/fixed]

Sinon, %VAR% c'est le contenu de la variable d'environnement VAR.
Par exemple, on voit l'utilisation de %PATH% dans ton batch.

%%I est la notation pour les variables de boucle FOR. Elles ne sont pas des variables d'environnement et ne peuvent avoir pour nom d'une unique lettre.

>> est la commande pour ajouter à la fin d'un fichier.
 

spitulo

Habitué
Je te remercie de ta réponse.

%Path%, ça correspond à la variable déclarée ici :
set Path=\\pc-perso\Partage ?

Ou est-ce que c'en ait une autre ?
 

spitulo

Habitué
OK merci.

Je me suis bien renseigner sur le script, j'arrive bien à le comprendre.

Mais il y a une petite suptilité qui m'échappe : justement le contenu de la variable Path, c'est un chemin qui contient au départ \\

A quel dossier cela renvoie ? Quelque chose sur la machine, ou sur un réseaux ?
Et en fonction de ça, le script il agit sur quoi précisement ? des utilisteurs différnts ?
 

zeb

Modérateur
Rhalala, M$ est pas fichu de respecter le moindre standard. Un double (back-)slash précède le nom d'un serveur.

Par exemple est un nom de chemin valide.
//www.presence-pc.com est le nom de la machine,
/forum/programmation/ est le nom du répertoire.

Ton batch déclare que les exécutables devront être trouvés dans le répertoire /Partage/ de la machine //pc-perso.

C'est tout. Sauf qu'il faut qu'ils se distinguent chez M$. Alors, il faut remplacer les / par des \ :sarcastic:

Pour t'en convaincre, ouvre un explorateur de Windows. Affiches-en la barre d'adresse. Puis va dans le répertoire Favoris Réseau/Tout le réseau/Réseau M$ Windows. Là, trouve ton groupe et ta machine. Puis ouvre un répertoire partagé (il faut que tu en ais un, bien sûr). Là, regarde un peu ce qui se trouve dans la barre d'adresse... TADAAAAA !

A la lumière de ces quelques informations, cela te paraît-il plus clair ?

 

spitulo

Habitué
Ah merci bien pour cette explication zeb ^^

Effectivement c'est plus clair.

Merci bien !
 

zeb

Modérateur
Ben vas-y fais-le !
En fait, il ne faut pas éditer le titre, mais cliquer sur "Elire meilleure réponse" de la réponse qui te semble la plus pertinente.

(Oh ouiiiiii, choisis une de mes réponses, que je puisse oh ouiiii, cumuler pleins de poiiiints, que tout le monde sache que je suis un noliiiiife) :pfff:
 

Storos

Modérateur cochon
Staff
Tu as déjà un badge en or, non? :D
 

zeb

Modérateur
C'est pour la forme. :o
Le spoiler est suffisamment explicite, si on sait le prendre au 2nd degré ;)

Dur, dur d'être le shérif
[:zeb:6]
 

spitulo

Habitué
Ah désolé, je ne savais pas qu'il fallait appuyer sur un bouton.

Bon, rien que pour t'embêter je vais mettre une réponse de storos ! Nah :p
En plus j'aime bien son cochon ;) (c'est une raison suffisante non? :))
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 827
Membres
1 586 367
Dernier membre
ramkin
Partager cette page
Haut