Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4508 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Correction Batch

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Correction Batch

n°2475766
pepstar13
Posté le 17-07-2024 à 16:45:26  profilanswer
 

Bonjour à tous :D  
 
Voilà j'ai crée un batch pour pouvoir regrouper mes fichiers par date, il fonctionne nickel MAIS une fois le dossier créer j'ai pas le bon format de fichier  
 
Je m'explique, au mieux d'avoir la date au format normal donc comme ceux-ci : 17-07-24 ben j'ai le format suivant : 17-07-04 --  
 
 

Code :
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM Récupérer le chemin complet du dossier où se trouve ce fichier batch
  4. set "current_dir=%~dp0"
  5. REM Obtenir la date courante au format JJ-MM-AAAA (à ajuster selon le format de votre système)
  6. for /f "tokens=1-3 delims=/" %%a in ('date /t') do (
  7.     set "day=%%a"
  8.     set "month=%%b"
  9.     set "year=%%c"
  10. )
  11. REM Créer le dossier de destination basé sur la date
  12. set "destination=%current_dir%!day!-!month!-!year!"
  13. if not exist "!destination!" (
  14.     mkdir "!destination!"
  15. )
  16. REM Parcourir tous les fichiers du dossier actuel sauf ce fichier batch et les déplacer vers le dossier de destination
  17. for %%F in ("%current_dir%\*" ) do (
  18.     if not "%%~nxF"=="%~nx0" (
  19.         move "%%F" "!destination!" >nul
  20.     )
  21. )
  22. echo Fichiers déplaces avec succes dans le dossier !destination!.
  23. pause


 
D'où peut venir l'erreur ?


---------------
Delta
mood
Publicité
Posté le 17-07-2024 à 16:45:26  profilanswer
 

n°2475791
mechkurt
Posté le 17-07-2024 à 23:49:03  profilanswer
 

Le problème avec le format de la date vient probablement de la commande date /t et de la manière dont elle retourne la date en fonction des paramètres régionaux de votre système. Les paramètres régionaux peuvent influencer le format de sortie, et il semble que dans votre cas, la date est retournée sous un format différent de celui attendu.
 
Pour obtenir le format souhaité (JJ-MM-AAAA), vous pouvez ajuster le script batch en utilisant la commande wmic pour obtenir la date au format YYYYMMDD, puis réarranger les parties pour obtenir le format désiré.
 
Voici comment vous pouvez le faire :
 
batch

Code :
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM Récupérer le chemin complet du dossier où se trouve ce fichier batch
  4. set "current_dir=%~dp0"
  5. REM Utiliser WMIC pour obtenir la date au format AAAAMMJJ
  6. for /f "tokens=2 delims==" %%i in ('wmic os get localdatetime /value') do set datetime=%%i
  7. REM Extraire l'année, le mois et le jour
  8. set year=%datetime:~0,4%
  9. set month=%datetime:~4,2%
  10. set day=%datetime:~6,2%
  11. REM Créer le dossier de destination basé sur la date
  12. set "destination=%current_dir%%day%-%month%-%year%"
  13. if not exist "!destination!" (
  14.     mkdir "!destination!"
  15. )
  16. REM Parcourir tous les fichiers du dossier actuel sauf ce fichier batch et les déplacer vers le dossier de destination
  17. for %%F in ("%current_dir%\*" ) do (
  18.     if not "%%~nxF"=="%~nx0" (
  19.         move "%%F" "!destination!" >nul
  20.     )
  21. )
  22. echo Fichiers déplacés avec succès dans le dossier !destination!.
  23. pause


 
Dans ce script :

  • Nous utilisons wmic os get localdatetime /value pour obtenir la date et l'heure actuelles au format AAAAMMJJHHMMSS.
  • Nous extrayons l'année, le mois et le jour de cette chaîne.
  • Nous formons le dossier de destination en utilisant le format JJ-MM-AAAA.
  • Le reste du script parcourt les fichiers et les déplace vers le dossier de destination comme avant.


Ce script devrait résoudre le problème de format de date que vous rencontrez.


---------------
D3
n°2475914
pepstar13
Posté le 19-07-2024 à 17:53:47  profilanswer
 

mechkurt a écrit :

Le problème avec le format de la date vient probablement de la commande date /t et de la manière dont elle retourne la date en fonction des paramètres régionaux de votre système. Les paramètres régionaux peuvent influencer le format de sortie, et il semble que dans votre cas, la date est retournée sous un format différent de celui attendu.
 
Pour obtenir le format souhaité (JJ-MM-AAAA), vous pouvez ajuster le script batch en utilisant la commande wmic pour obtenir la date au format YYYYMMDD, puis réarranger les parties pour obtenir le format désiré.
 
Voici comment vous pouvez le faire :
 
batch

Code :
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM Récupérer le chemin complet du dossier où se trouve ce fichier batch
  4. set "current_dir=%~dp0"
  5. REM Utiliser WMIC pour obtenir la date au format AAAAMMJJ
  6. for /f "tokens=2 delims==" %%i in ('wmic os get localdatetime /value') do set datetime=%%i
  7. REM Extraire l'année, le mois et le jour
  8. set year=%datetime:~0,4%
  9. set month=%datetime:~4,2%
  10. set day=%datetime:~6,2%
  11. REM Créer le dossier de destination basé sur la date
  12. set "destination=%current_dir%%day%-%month%-%year%"
  13. if not exist "!destination!" (
  14.     mkdir "!destination!"
  15. )
  16. REM Parcourir tous les fichiers du dossier actuel sauf ce fichier batch et les déplacer vers le dossier de destination
  17. for %%F in ("%current_dir%\*" ) do (
  18.     if not "%%~nxF"=="%~nx0" (
  19.         move "%%F" "!destination!" >nul
  20.     )
  21. )
  22. echo Fichiers déplacés avec succès dans le dossier !destination!.
  23. pause


 
Dans ce script :

  • Nous utilisons wmic os get localdatetime /value pour obtenir la date et l'heure actuelles au format AAAAMMJJHHMMSS.
  • Nous extrayons l'année, le mois et le jour de cette chaîne.
  • Nous formons le dossier de destination en utilisant le format JJ-MM-AAAA.
  • Le reste du script parcourt les fichiers et les déplace vers le dossier de destination comme avant.


Ce script devrait résoudre le problème de format de date que vous rencontrez.


 
 
Ça fonctionne :D  
 
Merci d'avoir aider :D


---------------
Delta
n°2475923
mechkurt
Posté le 19-07-2024 à 19:15:34  profilanswer
 

Tu peux remercier chatgpt, je suis nul en batch... :o


---------------
D3

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Correction Batch

 

Sujets relatifs
Arrêt d'un processus d'un programme script batchLancer un batch toutes les X minutes
batch lecture fichier temps réelModification batch
Transformer script Powershell en batch[Batch] Besoin d'explication sur une variable
Batch pour print massifBatch fichier host
[Batch] Ajout date création au nom lors d'une copiecorrection de script batch
Plus de sujets relatifs à : Correction Batch


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR