Copie aléatoire dans des dossiers

DoMiN1ToR Messages postés 48 Statut Membre -  
barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   -
j'ai créer un programme avec l'aise de ccm qui est censé copier un fichier texte dans une arborescence aléatoire la première partie marche bien mais pas la deuxième et je ne sais pas pourquoi si quelqu'un pourrai m'aider son aide est la bien venue
voici mon code :

@echo off
cd %USERPROFILE%\Desktop
md data
for /L %%A in (1,1,9) do (
md %%A
for /L %%B in (1,1,9) do (
md %%A\%%B
for /L %%C in (1,1,9) do (
md %%A\%%B\%%C
)
)
)

set /p var1="nom du fichier ?"

:dossier1
set dossier_1=%random%
if %dossier_1% LEQ 9 goto dossier2 else goto dossier1

:dossier2
set dossier_2=%random%
if %dossier_2% LEQ 9 goto dossier3 else goto dossier2

:dossier3
set dossier_3=%random%
if %dossier_3% LEQ 9 goto suite else goto dossier3
:suite

copy "F:\data\%var1%.txt" "F:\%dossier1%\%dossier2%\%dossier3%"

exit

2 réponses

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
     
    @echo off
    cd /d F:
    md data
    for /L %%A in (1,1,9) do (
    md %%A
    for /L %%B in (1,1,9) do (
    md %%A\%%B
    for /L %%C in (1,1,9) do (
    md %%A\%%B\%%C
    )
    )
    )

    set /p var1="nom du fichier ?"
    echo coucou > F:\data\%var1%.txt

    :dossier1
    set dossier_1=%random%
    if %dossier_1% GTR 9 goto dossier1

    :dossier2
    set dossier_2=%random%
    if %dossier_2% GTR 9 goto dossier2

    :dossier3
    set dossier_3=%random%
    if %dossier_3% GTR 9 goto dossier3

    :suite
    copy "F:\data\%var1%.txt" "F:\%dossier1%\%dossier2%\%dossier3%"

    exit
    0
    1. DoMiN1ToR Messages postés 48 Statut Membre
       
      j'ai essayer ton code mais comme le mien le fichier est collé a la racine t non aléatoirement dans l'arborescence
      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929 > DoMiN1ToR Messages postés 48 Statut Membre
         
        @echo off
        cd /d F:
        md data
        for /L %%A in (1,1,9) do (
        md %%A
        for /L %%B in (1,1,9) do (
        md %%A\%%B
        for /L %%C in (1,1,9) do (
        md %%A\%%B\%%C
        )
        )
        )

        set /p var1="nom du fichier ?"
        echo coucou > F:\data\%var1%.txt

        :dossier1
        set dossier_1=(%RANDOM%*9/32768)+1
        set dossier_1=%dossier_1:~0,1%

        if %dossier_1% GTR 9 goto dossier1

        :dossier2
        set dossier_2=(%RANDOM%*9/32768)+1
        set dossier_2=%dossier_2:~0,1%

        if %dossier_2% GTR 9 goto dossier2

        :dossier3
        set dossier_3=(%RANDOM%*9/32768)+1
        set dossier_3=%dossier_3:~0,1%

        if %dossier_3% GTR 9 goto dossier3

        :suite
        copy "F:\data\%var1%.txt" "F:\%dossier1%\%dossier2%\%dossier3%"

        exit
        0
  2. DoMiN1ToR Messages postés 48 Statut Membre
     
    cela ne change pas par rapport au premier script
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
       
      Cette fois-ci j'ai testé ça fonctionne :

      @echo off

      set racine=F:\data

      if not exist "%racine%" md "%racine%"

      cd /d %racine%

      for /L %%A in (1,1,9) do (
      md %%A
      for /L %%B in (1,1,9) do (
      md %%A\%%B
      for /L %%C in (1,1,9) do (
      md %%A\%%B\%%C
      )
      )
      )

      set /p var1="nom du fichier ? "
      echo coucou > %var1%.txt

      :dossier1
      set /a dossier_1=(%RANDOM%*9/32768)+1
      set dossier_1=%dossier_1:~0,1%
      if %dossier_1% GTR 9 goto dossier1

      :dossier2
      set /a dossier_2=(%RANDOM%*9/32768)+1
      set dossier_2=%dossier_2:~0,1%
      if %dossier_2% GTR 9 goto dossier2

      :dossier3
      set /a dossier_3=(%RANDOM%*9/32768)+1
      set dossier_3=%dossier_3:~0,1%
      if %dossier_3% GTR 9 goto dossier3

      :suite
      copy "%var1%.txt" "%dossier_1%\%dossier_2%\%dossier_3%"

      exit
      0