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 :

Récompence Journalière Batch [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 49
    Par défaut Récompence Journalière Batch
    Bonjour,
    Je suis entrain de créer un jeu en batch.
    J'aimerai introduire un système de récompense journalière : une fois par jour, on peut récupérer 25 de score gratuit.
    Mais comment faire en sorte qu'on puisse la récupérer qu'une fois par jour ?

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Tu dois stocker l'information, le jour me parait assez pertinent.
    Le plus simple est de créer un fichier (le nom suffira pour le moment), exemple :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    cls
     
    set "FileRecompense=%~dp0%date:/=_%.flag"
     
    REM Création du flag de la récompense journalière
    echo. >"%FileRecompense%"
     
    REM Vérification de la récompense aujourd'hui
    IF EXIST "%FileRecompense%" (echo DEJA gagne aujourd hui) else (echo PAS encore gagne aujourd hui)
     
    pause

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 49
    Par défaut
    Bonsoir,
    A chaque fois, la console me renvoit : "DEJA gagne aujourd hui" alors que c'est la première fois que je lance le .bat
    Si je supprimer le fichier .flag et que je relance le .bat toujours le message : "DEJA gagne aujourd hui"...

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Hum .... je vois

    Voici le code légèrement modifié.
    Tu as maintenant les pièces de Lego de base à toi de les assembler comme il faut pour créer ce que tu veux.

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    cls
     
    set "FileRecompense=%~dp0%date:/=_%.flag"
     
    REM Vérification de la récompense aujourd'hui
    IF EXIST "%FileRecompense%" (echo DEJA gagne aujourd hui) else (echo PAS encore gagne aujourd hui)
     
    REM Création du flag de la récompense journalière
    echo. >"%FileRecompense%"
     
    pause

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 49
    Par défaut
    Merci,
    On ne peut pas supprimer les flags des jours précédents ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    on le peux

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    @echo off
    cls
     
    set "FileRecompense=%~dp0%date:/=_%.flag"
     
    REM Suppression des anciens fichiers flag
    for /F "tokens=*" %%a in ('dir "%~dp0??_??_????.flag" /A /B') do if /I NOT "%FileRecompense%" == "%%~dpnxa" del /F /Q /A "%%~dpnxa"
     
    REM Vérification de la récompense aujourd'hui
    REM IF EXIST "%FileRecompense%" (echo DEJA gagne aujourd hui) else (echo PAS encore gagne aujourd hui)
     
    REM Création du flag de la récompense journalière
    REM echo. >"%FileRecompense%"
     
    pause

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 49
    Par défaut
    Merci, ça fonctionne parfaitement !

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 49
    Par défaut
    J'ai une autre question,
    j'ai créer différents comptes utilisateurs pour mon jeu, donc la récompense journalière doit être récupérer qu'une seul fois pour chaque comptes.
    J'ai réussi mais le problème est que je n'arrive pas a supprimer les anciens flags...

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    cls
     
    set "FileRecompense=.\library\users\%username%\recompense\%date:/=_%.flag" >nul
     
    for /F "tokens=*" %%a in ('dir "%~dp0??_??_????.flag" /A /B') do if /I NOT "%FileRecompense%" == "%%~dpnxa" del /F /Q /A "%%~dpnxa"
    echo %FileRecompense%
     
    IF EXIST "%FileRecompense%" (echo DEJA gagne aujourd hui) else (echo PAS encore gagne aujourd hui)
    pause

    Merci

  9. #9
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Le "." représente bien pour toi le dossier ou est situé le batch ?

    Si oui
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    cls
     
    set "FileRecompense=%~dp0library\users\%username%\recompense\%date:/=_%.flag" >nul
     
    for /F "tokens=*" %%a in ('dir "%~dp0library\users\%username%\recompense\??_??_????.flag" /A /B') do if /I NOT "%FileRecompense%" == "%%~dpnxa" del /F /Q /A "%%~dpnxa"
    echo %FileRecompense%
     
    IF EXIST "%FileRecompense%" (echo DEJA gagne aujourd hui) else (echo PAS encore gagne aujourd hui)
    pause

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 49
    Par défaut
    Je ne peux toujours pas supprimer les anciens flags
    Et ou le "." représente les dossiers précédents

    Je reçois ces messages dans la fenêtre dos :
    Impossible de trouver C:\Users\steever38\Desktop\pierre papier ciseaux\03_03_2022.flag
    Impossible de trouver C:\Users\steever38\Desktop\pierre papier ciseaux\04_03_2022.flag
    DEJA gagne aujourd hui
    Appuyez sur une touche pour continuer...
    mon batch ce trouve dans mon "C:\Users\steever38\Desktop\pierre papier ciseaux"

    voici le code complet de la récompense :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cls
     
    set "FileRecompense=%~dp0library\users\%username%\recompense\%date:/=_%.flag" >nul
     
    for /F "tokens=*" %%a in ('dir "%~dp0library\users\%username%\recompense\??_??_????.flag" /A /B') do if /I NOT "%FileRecompense%" == "%%~dpnxa" del /F /Q /A "%%~dpnxa"
     
    IF EXIST "%FileRecompense%" (echo DEJA gagne aujourd hui) else (echo PAS encore gagne aujourd hui)
     
    echo. >"%FileRecompense%"
    pause

  11. #11
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Je ne comprend pas bien ton organisation.

    Je comprend que le batch est ici : C:\Users\steever38\Desktop\pierre papier ciseaux
    Mais ou doivent se trouver les récompenses ?

  12. #12
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Changons un peu la structure en imaginant que tes récompenses sont ici : C:\library\users\%username%\recompense
    Je pense qu'avec ce code tu peux faire aussi des chemins relatifs

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    cls
    @echo off
     
    set "folder_R=C:\library\users\%username%\recompense"
    set "file_R=%date:/=_%.flag"
     
    set "FileRecompense=%folder_R%\%file_R%"
     
    for /F "tokens=*" %%a in ('dir "%folder_R%\??_??_????.flag" /A /B 2^>nul') do if /I NOT "%file_R%" == "%%~nxa" del /F /Q /A "%folder_R%\%%~nxa"
    echo %FileRecompense%
     
    IF EXIST "%FileRecompense%" (echo DEJA gagne aujourd hui) else (echo PAS encore gagne aujourd hui)
    pause

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 49
    Par défaut
    Merci, c'est exactement que je voulais.

    Voici le code final que j'ai mis :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set "folder_R=.\library\users\%username%\recompense"
    set "file_R=%date:/=_%.flag"
     
    set "FileRecompense=%folder_R%\%file_R%"
     
    for /F "tokens=*" %%a in ('dir "%folder_R%\??_??_????.flag" /A /B 2^>nul') do if /I NOT "%file_R%" == "%%~nxa" del /F /Q /A "%folder_R%\%%~nxa"
    IF EXIST "%FileRecompense%" (goto :Oui) else (goto :Non)

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

Discussions similaires

  1. creation batch sauvegarde
    Par jul54 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 21/11/2003, 16h00
  2. Réponses: 5
    Dernier message: 01/10/2003, 15h03
  3. batch pour faire une sauvegarde
    Par bibiodp dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 13/08/2003, 13h09
  4. [JSP]Exécution d'un batch
    Par tsco_ops dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/07/2003, 14h58
  5. Verifier qu'un dossier existe (batch)
    Par kakou dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 08/01/2003, 13h46

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