Forum Clubic

Récupération de fichiers et incrémentation

Bonjour,
Je récupère les images d’une caméra IP sur un serveur FTP mais, les images s’auto écrasent. Je cherche un petit batch pour renommer en incrémentant chaque image.
Cdlt

Bonsoir,

Est-ce que tu peux expliquer un peu mieux?

Les images s’auto écrasent parce qu’elles ont le même nom, c’est ça? Et tu les télécharges par ftp en utilisant la ligne de commandes? Donne-nous un exemple de la commande utilisée pour que je puisse créer l’incrémentation adaptée à la commande.

A+ :slight_smile:

Bonjour,

oui les images qui sont envoyés sur le FTP s’auto écrasent car elles ont le même nom et, je n’arrive pas à faire fonctionner l’auto incrémentation par l’interface web car je pense que dans les scripts de la caméra il doit y avoir une commande pour bloquer le nom mais je ne sais pas aller plus loin. la camera est une axis 2120, par filezilla j’ai pu visiter certains scripts, pour le chemin du serveur FTP et la plage horaire de fonctionnement et c’est tout…
Donc je pense qu’avec un batch qui tournerai en boucle je pourrai renommer en incrémentant les images qui arrivent quotidiennement de la camera.

Cdlt.

Bonjour,

J’ai édité ce post car je ma suis rendu compte que tu as dit que les images arrivent quotidiennement de la caméra.

Le batch que je t’avais donné était pour transférer les images et ensuite les renommer, mais si elles arrivent toutes seules, c’est plus facile encore.

Comme je ne sais pas quand est-ce que les images arrivent, j’ai adapté la procédure à une image arrivée par heure:

Crée une tâche planifiée pour exécuter le batch qu’on va créer toutes les 30 minutes. Poste si tu ne sais pas comment créer une tâche planifiée.

Le code pour le batch:

[b]@echo off
echo.
if not exist %windir%\nfi.dll set NF=21
if exist %windir%\nfi.dll set /p NF=<%windir%\nfi.dll
set /a NFI=%NF%-20
rem Ceci crée une variable %NFI% qui changera à chaque fichier renommé

echo.
echo Recherche d’une nouvelle image d’Axis 2120…
if not exist [repertoire, nom et extension de l’image par défaut] exit
echo.
echo Renommage de l’image…
rename [“répertoire, nom et extension de l’image par défaut”] “Image %NFI%.jpg”
rem Ceci renomme l’image reçue pour Image [chiffre de la variable %NF%].jpg

set /a NF=%NF%+1
echo %NF%>%windir%\nfi.dll
exit
rem Ceci change le chiffre de la variable %NF%, sauvegarde-le pour le prochain fichier et ferme le batch.
[/b]

N’oublie pas de changer [répertoire, nom et extension de l’image par défaut] par la bonne valeur.

Utilise des guillemets s’il y a des espaces dans le répertoire ou le nom du fichier.

Le batch recherchera une nouvelle image et, si elle existe la renommera Image1.jpg, Image2.jpg, Image3.jpg…

Vu que son exécution est automatique tu n’auras plus rien à faire.

Bonne chance :slight_smile:

A+

Je viens de tester et j’ai corrigé quelques erreurs. Ça marche bien maintenant.
Edité le 17/08/2010 à 15:32

voilà un batch …mais cela ne fonctionne pas :
j’ai placé des pause et, déjà après le " if not exist [F:\FTP\image_00001] exit " le batch sort…
ensuite j’ai modifié pour ne pas sortir (un echo devant le exit de la ligne) et un autre pause après "rename [“F:\FTP\chatel_evenement_00001.jpg”] “Image %NFI%.jpg” et là il me dit que le fichier est introuvable. J’avais déjà eu ce problème dans mes essais avec la commande “rename” mais que je n’ai pu résoudre.
J’ai essayer de tout placé sous c:, même résultat…
voilà mes corrections :
@echo off
echo.
if not exist %windir%\nfi.dll set NF=21
if exist %windir%\nfi.dll set /p NF=<%windir%\nfi.dll
set /a NFI=%NF%-20
rem Ceci crée une variable %NFI% qui changera à chaque fichier renommé
pause
echo.
echo Recherche d’une nouvelle image d’Axis 2120…
pause
if not exist [F:\FTP\evenement_00001.jpg] exit
echo.
pause
echo Renommage de l’image…
rename [“F:FTP\evenement_00001.jpg”] “Image %NFI%.jpg”
pause
rem Ceci renomme l’image reçue pour Image [chiffre de la variable %NF%].jpg
set /a NF=%NF%+1
echo %NF%>%windir%\nfi.dll
exit
rem Ceci change le chiffre de la variable %NF%, sauvegarde-le pour le prochain fichier et ferme le batch.
pause
je ne vois pas plus…
Cdlt

Bonjour,

Pendant les essais que j’ai fait, le premier batch que j’ai fait ne fonctionnait pas car la variable %NF% avait une valeur inférieure à 20. Quand je l’ai changé pour corriger ce problème (j’ai crée une nouvelle variable %NFI%), il fallait toujours supprimer le fichier C:\windows\nfi.dll, crée par le batch ainsi que des images déjà renommées Image %NFI% pour le tester à nouveau.

J’ai testé le batch en créant un fichier C:\Nouvelle image.jpg, et à chaque fois que j’exécutais le batch elle changeait pour Image 1.jpg. Je créais une autre C:\Nouvelle image.jpg, exécutais le batch à nouveau et il la renommait Image 2.jpg. J’ai fait jusqu’à treinte images avec succès. Donc le batch marche.

Le problème doit être dans le nom du fichier qui contient des caractères spéciaux dans évènement. Pour que le caractère é marche dans un batch, il faut le créer en tapant ALT + 0130 (Sans lâcher la touche ALT). Pour le caractère è c’est ALT + 0138.

Essaye de supprimer le fichier C:\Windows\nfi.dll et de te certifier qu’il n’y a pas d’images déjà renommées Image [1, ou 2, etc] dans le répertoire et de refaire le batch sans changements, mais utilise la méthode décrite ci-dessus pour les caractères spéciaux.

A +
Edité le 20/08/2010 à 11:18