IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

batch - for, skip est il limité ?


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Par défaut batch - for, skip est il limité ?
    Bonjour, j'ai un script batch avec une premiére boucle qui va chercher le numéro da la ligne ou se trouve la date du jour dans un fichier.txt, je récupére le numéro de la ligne dans un variable que j'utilise dans ma dexième boucle avec skip, la la numéro de la ligne et admeton 1334 ca fonctionne, mais si le numéro de la ligne est 12334 ca ne fonctionne plus, donc ma question skip est il limité ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    :: On créer la variable date au format 12\06\07:
    set datetimetmp=%date:~0,2%/%date:~3,2%/%date:~8,2%
     set datetimetmp=%datetimetmp: =%
    
    :: On récupére le numéro de la ligne ou se trouve la date du jour dans le fichier.txt:
    for /f "tokens=1 delims=:" %%i in ('type fichier.txt ^| findstr /i /n /c:"%datetimetmp%"') do set VrNubLigneDat=%%i
    
    :: On cherche les erreurs:
    for /f "skip=%VrNubLigneDat% tokens=1* delims= " %%i in ('type fichier.txt ^| findstr /i /c:"of which were"') do (
     if not %%i== 0 echo Il y a une erreur %%i
    )

  2. #2
    Membre émérite
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Par défaut
    Bon, allez, un dernier poste avant de partir au dodo, juste parce que c'est toi
    Voilà ta réponse: skip_limit.cmd
    et par-dessus le marché, dans la langue que tu affectionnes.

    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
    
    ::skip_limit.cmd
    @echo off
    set debut=1
    set filename=count.txt
    set nbligne=512
    cd.>%filename%
    :continue
    FOR /L %%i IN (%debut%,1,%nbligne%) DO (
    echo Ecriture dans count.txt
    echo %%i lignes ...
    echo %%i>>%filename%
    cls)
    :trouvelimit
    set /a limit=%nbligne%-1
    FOR /F "skip=%limit%" %%j in (%filename%) do set actual=%%j
    Title D‚j… %actual% SKIP avec succŠs
    if "%actual%"=="16384" Title D‚j… %actual% SKIP avec succŠs, on a d‚pass‚ les 12334, bon signe
    if "%actual%"=="65536" Title D‚j… %actual% SKIP avec succŠs, tu appuis sur Ctrl-C quand tu veux
    ::ping -n 3 localhost>NUL
    set /a debut=%nbligne%+1
    set /a nbligne=nbligne*2
    goto continue
    :fin

  3. #3
    Membre éprouvé
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Par défaut
    Bonjour et merci

    Je ne comprend pas ta réponse.

    Et y fait quoi ton script ?

  4. #4
    Membre émérite
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Par défaut
    Salut Kokotis

    Tu copies le script dans un fichier texte skip_limite.cmd, et tu le lances.
    Une fois lancé, il cherche la limite du skip, comme tu l'as demandé plus haut.

    Citation Envoyé par koKoTis
    numéro de la ligne et admeton 1334 ca fonctionne, mais si le numéro de la ligne est 12334 ca ne fonctionne plus, donc ma question skip est il limité ?
    La réponse est donnée dans la barre de titre pendant le traitement de skip_limite.cmd en mode fenêtré.
    Si tu as besoin de plus d'explications ou de détails sur le pourquoi, le comment, n'hésite pas.
    Enjoy...

  5. #5
    Membre éprouvé
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Par défaut
    Merci pour ces précision

    Citation Envoyé par maxim_um
    Si tu as besoin de plus d'explications ou de détails sur le pourquoi, le comment, n'hésite pas.
    Enjoy...
    Oui j'aimerai bien savoir le pour quoi du comment ?

  6. #6
    Membre émérite
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Par défaut
    Avant tout.
    L'as-tu essayé ?
    Est-ce qu'il t'a apporté la réponse que tu attendais ?

    Pendant le temps que tu réponds, je prépare de mon côté "le pourquoi du comment ".

    A de suite...

  7. #7
    Membre éprouvé
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Par défaut
    C'est bizzare ton script arrive justqua au moin 400000 sans probléme et continu encore, mais dans mon script ca bloque

  8. #8
    Membre émérite
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Par défaut
    Pardon de t'avoir fait attendre, j'ai eu un contretemps

    Bon, revenant à nos moutons.
    Comme je ne connaissais pas la réponse, alors j'ai demandé à ma console de me trouver cette réponse.
    Pour qu'on puisse communiquer, je lui ai demandé, dans son langage favori, et dans le tien aussi,
    c'est-à-dire le batch, ce qui suit :

    1. Tu me génères un fichier texte.
    2. Dans ce fichier texte, tu numérotes toutes les lignes.
    3. Mais attention, on y va doucement, d'abord 512 lignes

    (J'aurai pu en mettre 1000,
    Mais pourquoi 512. Est bien parce que c'est un multiple l'octet (8 bits)
    Mais pourquoi un multiple de l'octet ? Et bien parce que c'est la base fondamentale en informatique -8 -16 -32 -64...
    En règle générale, s’il y a une limite, elle est un multiple de l'octet -1024 - par exemple)

    4. Maintenant que les 512 lignes sont écrites, regarde si tu peux "skiper" les 511 premières lignes, et affiche-moi la ligne 512.
    5. T'as réussi à l'afficher, donc ta réussie à "Skiper" les premières lignes, donc la limite n'est pas 512(ou 512-1).
    6. Et bien dans ce cas, rajoute des lignes, plusieurs (le double) et refais le test -> goto 4 avec lignes=le double des lignes.


    C'est schématiquement ce que fait le script.

    S’il y a une ligne du code en particulier qui t'intrigue, n'hésite pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [c#]threads : ou est la limite d'execution du thread ?
    Par zax-tfh dans le forum Windows Forms
    Réponses: 4
    Dernier message: 21/11/2006, 19h41
  2. Réponses: 1
    Dernier message: 17/10/2006, 15h05
  3. [Ecran TFT]Est-on limité à la résolution indiquée
    Par NicolasJolet dans le forum Périphériques
    Réponses: 6
    Dernier message: 06/09/2006, 20h25
  4. [VB6]Le nombre de contrôle d'une IHM est-il limité?
    Par lio33 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/02/2006, 11h20
  5. Réponses: 14
    Dernier message: 07/12/2005, 15h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo