Variable sur la taille d'un fichier

remi.poncet -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
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 !

8 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  2. remi.poncet
     
    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
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. remi.poncet
     
    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
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  7. remi.poncet
     
    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
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      j'ai pas compris ce que tu veux
      0
    2. remi.poncet
       
      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
    3. remi.poncet
       
      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
    4. remi.poncet
       
      hm? :/
      0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    nombre a la valeur trouvée dans le fichier
    for /f "tokens=4" %%a in (fichier.txt) do (
    set nombre=%%a
    ..
    ...
    )
    0