Variable sur la taille d'un fichier

Fermé
remi.poncet - 11 mai 2014 à 02:02
dubcek Messages postés 18765 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 20 février 2025 - 12 mai 2014 à 09:02
Bonjour,
Je vais essayer d'expliquer mon problème le plus clairement que possible.
Je cherche à automatiser le transfert de fichiers via netcat d'un PC à un autre.
Le seul moyen pour cela est de transmettre la taille maximale qu'on appelera %sizeMAX% de PC1 à PC2 dans le nom du fichier que l'on va envoyer => %sizeMAX%.png par exemple. [c'est le seul moyen de transmettre cette information.]. Puis de comparer en continu la taille du fichier entrain d'être téléchargé [%CURRENTsize%] avec %sizeMAX%.

@echo off
:again
if %CURRENTsize%=%sizeMAX% goto done
goto again
:done
taskkill /f /im netcat.exe

Le problème est tout d'abord que :

set file=%userprofile%\test.png

echo set len=%%~z1 >_tmp.bat
call _tmp.bat %file% && del _tmp.bat
echo %len%

cd %userprofile%\Folder
copy picture.png %userprofile%\%len%.png
pause

Plusieurs problèmes => %CURRENTsize% se termineras logiquement en .png alors que %sizemax% non.
=> le script ci dessus ne marche pas
=> D'autres petits détails ..

Merci d'avance d'avoir pris le temps de me lire, j'attend vos réponses avec impatience !
A voir également:

8 réponses

remi.poncet
11 mai 2014 à 14:07
Arf, up.
0
dubcek Messages postés 18765 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 20 février 2025 5 624
11 mai 2014 à 14:32
hello
j'ai pas tout compris quelle est la question, mais pour supprimer .png d'une variable, faire:
C:> set a=100.png
C:> echo %a:.png=%
100
0
remi.poncet
11 mai 2014 à 14:37
Il y a plusieurs questions , celle à laquelle vous venez de répondre en était une.
La deuxième est : comment faire pour renommer une image en SONPOIDS.png ?
Et ensuite sur le deuxième pc comparer le nom de l'image SONPOIDS (qui est donc le poids maximal de l'image) avec le poids actuel (en cours de téléchargement) donc quand le téléchargement sera fini il faut que SONPOIDS = poids actuel
tu me suis?
0
dubcek Messages postés 18765 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 20 février 2025 5 624
11 mai 2014 à 14:55
pour obtenir la taille de fichier.png
for %%a in (fichier.png) do echo taille: %~za
pour renommer une image par sa taiile, par ex. image.png
set img=image.png
for %%a in (%img%) do mv %a %~za.png
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
remi.poncet
11 mai 2014 à 16:12
Merci beaucoup, votre aide m'est précieuse.
J'ai une autre question : quel est la commande pour set une variable composée d'une ligne dans un fichier txt ?
par exemple prenons test.txt
ligne 1 : 8538
j'aimerais que set soit égal à 8538 seulement
est - ce possible ? merci d'avance.
0
dubcek Messages postés 18765 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 20 février 2025 5 624
11 mai 2014 à 16:26
le nombre étant le 4ème champ de la ligne (par défaut, le séparateur est un espace)
for /f "tokens=4" %%a in (fichier.txt) do @echo %%a
0
remi.poncet
11 mai 2014 à 16:44
Bon d'accord les liens puush sont interdis .. 3 fois qu'on supprime mes messages.
Donc votre commande me donne le bon résultat mais ce que je voudrais c'est que je puisse entrer echo %variable% = 921654
Merci
0
dubcek Messages postés 18765 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 20 février 2025 5 624
11 mai 2014 à 16:58
j'ai pas compris ce que tu veux
0
remi.poncet
11 mai 2014 à 17:02
Set une variable qui me donne le même résultat que la commande que tu m'a donné

de sorte à ce que echo %variable% me donne le résultat de ta ligne; 912654
0
remi.poncet
11 mai 2014 à 17:16
C'est toujours pas assez clair?
Mon but c'est de comparer deux variables; j'ai la première il me faut la deuxième qui doit être la première ligne du fichier txt
0
remi.poncet
11 mai 2014 à 17:36
hm? :/
0
dubcek Messages postés 18765 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 20 février 2025 5 624
12 mai 2014 à 09:02
nombre a la valeur trouvée dans le fichier
for /f "tokens=4" %%a in (fichier.txt) do (
set nombre=%%a
..
...
)
0