Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[R] - Création de dossiers et de fichiers
Auteur Message
Répondre en citant
Message [R] - Création de dossiers et de fichiers 
Bonsoir,
J'ai un répertoire dont la structure est la suivante:
Code:

    1.9.7 - Rinky.vex
    4.6.2 - Programme 1.3.vex
    4.6.2 - Mika.vex

Je ne part que de ces .vex (leur contenu n'est pas important pour ce que je veux faire) et je veux en arriver à ce résultat:
Code:

├───1.9.7 - Rinky
|       ├─ 1.9.7 - Rinky.vex
|       └─ 1.9.7 - Rinky.data
├───4.6.2 - Programme 1.3
|       ├─ 4.6.2 - Programme 1.3.vex
|       └─ 4.6.2 - Programme 1.3.data
└───4.6.2 - Mika
|       ├─ 4.6.2 - Mika.vex
|       └─ 4.6.2 - Mika.data


L'idée est donc de créer des dossiers correspondants aux noms des fichiers .vex, de déplacer les .vex d'origine à l'intérieur et de créer un .data avec le même nom.

Le contenu du .data doit changer en fonction de la version (les chiffres avant le premier espace).
L'idéal serait d'avoir une partie qui soit dans l'esprit de
Code:
set 1.9.7=commentaire sur la version
set 4.6.2=autre commentaire

Les .data doivent commencer par
Code:
ledebut:
et se terminer par
Code:
:lafin


J'ai tenté de le faire moi même mais c'est un peu trop spécifique pour trouver des exemples et avec mes connaissances de débutant en batch j'arrive à créer les dossiers pour l'instant:
Code:
FOR %%f IN (*.vex) DO (
if not exist "%%~nf\" mkdir "%%~nf"
)


J'espère que quelqu'un aura le coeur de se creuser la tête pour ça, si vous avez besoin de plus d'indications n'hésitez pas à demander ^^



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [R] - Création de dossiers et de fichiers 
Salut,

test ça :

Code:
@echo off
setlocal enabledelayedexpansion

for /f "delims=" %%a in ('dir /b/a-d') do (echo %%a
   set "$path=%%a"
   md "%%~dpna"
   move "%%~dpnxa" "%%~dpna\"
   echo !$path:~0,5! >"%%~dpna\%%~dpna.data"
   )


Pour le contenu du .data j'ai juste mis la version dedans. J'ai pas vraiment compris ce que tu voulais.


Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [R] - Création de dossiers et de fichiers 
En gros je veux que le .data contienne quelque chose que je paramètre dans une variable à la main en fonction de la version, j'ai testé ton code et le seul problème est que les .data ne sont pas créés



Répondre en citant
Message [R] - Création de dossiers et de fichiers 
J'aurai + vu un truc comme ça perso :

Code:
@echo off
chcp 28591 > nul
Title Créé par Flammrock
call :TXTCOLOR
set COLOR=TXTCOLOR.exe
mode con cols=120 lines=30

setlocal enabledelayedexpansion enableextensions

:: ------- VAR -----------------
set "extension=vex"
set "start_file_data=ledebut:"
set "end_file_data=:lafin"
set /a nb_file = 0
:: -----------------------------



:: -------------- LIST VERSION -----------------
rem Mettre les versions dans cette liste :
set "list_version=v1.0.0-v1.5.3-v6.6.6"

rem Les commentaires des versions ici :
set "v1.0.0=Première version représente représente #thug"
set "v1.5.3=Luke, je suis ton père"
set "v6.6.6=Illuminati confirmed"
rem ETC...
:: --------------------------------------------


for /F "tokens=*" %%i in ('dir /b /a:-d "*.%extension%"') do (
  if exist "%%i" (
    set $path="%%i"
    for %%a in (!$path!) do set $file=%%~na
    if not exist "!$file!\" (
      %COLOR% FC 1 "___________________________________________________________________________________________________________"
      %COLOR% F0 0 "-- '" & %COLOR% EC 0 "!$file!" & %COLOR% F0 1 "' traité !"
      mkdir "!$file!"
     move "!$file!.%extension%" "!$file!\"
      echo.%start_file_data% > "!$file!\!$file!.data"
       rem ----- Ici c'est le commentaire de la version -
       set version_file=v!$file:~0,5!
      for %%v in (%list_version:-= %) do (
        if "%%v"=="!version_file!" (
          echo.        Version : !$file:~0,5!
          %COLOR% F0 0 "        Commentaire version : '!%%v!'  " & %COLOR% F9 0 "IN" & %COLOR% FC 0 "  ->" & %COLOR% F9 1 "  DATA FILE"
          echo.!%%v! >> "!$file!\!$file!.data"
        )
      )
      rem ---------------------------------------------
     echo.%end_file_data% >> "!$file!\!$file!.data"
     %COLOR% FC 1 "___________________________________________________________________________________________________________" & echo.
     set /a nb_file += 1
    ) else (
      :back
      echo. & echo.
     echo.Ce fichier "!$file!" porte le même nom qu'un dossier !
     echo.Voulez-vous le supprimer ou le remplacer ?
     %COLOR% F0 0 "(" & %COLOR% F8 0 "Mettez 0 pour supprimer et 1 pour remplacer" & %COLOR% F0 1 ")"
     set /p "choice=Votre choix : "
     set /a test_var = 0
     if not "!choice!"=="0" set /a test_var += 1
     if not "!choice!"=="1" set /a test_var += 1
     if "!test_var!"=="2" goto :back
     if "!test_var!"=="0" del "!$file!.%extension%"
     if "!test_var!"=="1" move "!$file!.%extension%" "!$file!\"
    )
  )
)
echo.
echo.!nb_file! fichiers ont été traité avec succès !
%COLOR% F0 0 "Code créé par " & %COLOR% FC 1 "Flammrock"
if exist TXTCOLOR.exe del TXTCOLOR.exe
:infinite
pause>nul
goto :infinite
:TXTCOLOR
Echo.Const W=^2>t.vbs&Echo.Set o=WScript.StdOut>>t.vbs
For %%b In (
"4D53434600000000BA030000000000002C000000000000000301010001000000000000"
"004900000001000100D20700000000000000009E3B8A662000747874636F6C6F722E65"
"78650063EB078D6903D207434BDD544B681341189E6D538D35352AE2030F4EC44A458D"
"55113C88D4C75A85AA5B5A2F8AD66D324997A6BB7177A2297868498B9450ECA182871E"
"7AF0E0C183878AA98844DA83828288074FE24549B1A00785452AEB3F8F3C5A7C54BD39"
"F0E77F7FF3CD9FD9397976045523847C209E87500E89D5847EBFFA40566C7AB0024D2C"
"7B1ECA292DCF43ED5D868393B615B7F51E1CD14DD3A2B893603B6562C3C4474FB7E11E"
"2B4AC27575B55B2486A622D4A254CDC37D8B82D5CB9525F3624DABE167250896EC985D"
"25782354D6A851C4A70F237E2E5EB8B25297145F1701EFC022CEFAA76B0C70F7FF221F"
"A6244D8B644036540BDE950B202E86A33AD5C17EA188C04BA6E78F864D23FFB73CCF0C"
"BDEB9F6D006324ABFA33AE2F38180016593590C9FBB2FED6C228789969DF903AC7637E"
"16EB2BC6DCAC3A9771157E6782A3F9C17C7060032A77071F295AE19C289EB9C413505E"
"5559DEB4B07C872867B97D15B9CC6385A7EBCAE9B5909EA945F2CACE0498C586F3A146"
"04D80FA7EDFE8CA25FEE995704C53298E865C7630D5F7983CBCC8F254E93EC8F6B9D64"
"95AD6C28190E12280D6AB2767E3E52CC33D47ED7637CAE8D0BE48C8B8203AB8AB6121C"
"A86124328CCE17CFF3B44258617C3E0FAB6FB4ACFA592B6C55F830FBDFB24F5684362A"
"9259207BD21D525F0F3E9530FC544B71139A616EAE062CE8789D455A0E31BBC04E0BCC"
"82F7D5F702EA45690EEB99E5E75553BCCAC747CCE7F374AA747FD6B0FB9313439BCDB1"
"0F0FB091025D3778979F776985EB0263589DD578B5360CDB0DAB2EC89C56E8E5D9358C"
"02CC010462E7BF791E9FDAA7ACFA492B5C1000B0B5573F86D9E5F1EAC7A5BE25F56DA9"
"A7A57E22F533A9EF487D57EA09A973523FC48B79FBFE9755EFD43B08AE084DD38895B0"
"EC304913DCA947BAE3B69532A30D8D3B8F6D8B5936A970E181374C7A8A5C69314CD2D0"
"B86BF736BC997611CC5EB4CDB50BF05FE1B21D08897771AE22761562D3F8C7DCD6410E"
"836C07D9077210A419A41D8480A442A26E08F44D907BA17FEBEB712E476C1A8E2612E0"
"38D44E10130CC349478DB841B959B4204B2D56C6671103A3236299D4B612B124733A1C"
"423BF464B283F626090FC409EDD10D53B7E30EF8240D30DDC4364962EF1EB96333A16D"
"347A5C37A30922DC2396E95809D216B109310FA76231629F30631624DB4AC97698FA21"
) Do >>t.vbs (
Echo.For b=1To 69Step 2:o.Write Chr(Clng("&H"^&Mid(%%b,b,W^)^)^):Next)
For %%b In ("4A6DA33345591BFA0E"
) Do >>t.vbs (
Echo.For b=1To 17Step 2:o.Write Chr(Clng("&H"^&Mid(%%b,b,W^)^)^):Next)
Cscript /Nologo t.vbs > TXTCOLOR.ex_
Del /f /q /a t.vbs >nul 2>&1
Expand -r TXTCOLOR.ex_ >nul 2>&1
Del /f /q /a TXTCOLOR.ex_ >nul 2>&1
Goto :Eof



Edit : Si tu veux + stylé comme par exemple un menu avec souris, une apparition en fondu de la console, changer la position de la console ou autre chose encore dis-le moi et je te le fais Okay Mr. Green



Dernière édition par Flammrock le Sam 1 Oct 2016 - 14:17; édité 1 fois

______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R] - Création de dossiers et de fichiers 
Hello,

Flam' là il ne demandais qu'un traitement mais l'interface pourquoi pas tu m'diras (le gars motivé Laughing )



Edit, N'ayant pas bien compris dès le départ, ma solution est en bas Okay



Dernière édition par Logan le Sam 1 Oct 2016 - 16:08; édité 2 fois

______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Répondre en citant
Message [R] - Création de dossiers et de fichiers 
Logan a écrit:
Flam' là il ne demandais qu'un traitement mais l'interface pourquoi pas tu m'diras Laughing


Je préfère faire des trucs stylé, simple et fonctionnelle et aussi sûr mesure Mr. Green
Si on demande de l'aide et bin...avec moi il faut s'attendre à du sur mesure Mort de rire




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R] - Création de dossiers et de fichiers 
C'est bien les gens comme ça, ça donne un exemple d'utilitaire sympâtoche du coup Champion !




______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Répondre en citant
Message [R] - Création de dossiers et de fichiers 
Logan a écrit:
C'est bien les gens comme ça, ça donne un exemple d'utilitaire sympâtoche du coup Champion !


Ouai GreenPowaa GreenPowaa


Par contre :
sachadee a écrit:
Pour le contenu du .data j'ai juste mis la version dedans. J'ai pas vraiment compris ce que tu voulais.

Logan a écrit:
J'ai pas bien compris la demande non plus. Du coup je t'ais pondu trois petits trucs (pas testé j'suis sur smartphone Laughing):


Vous n'êtes pas sérieux les gars Mr. Green


Je traduis ce qu'il veux faire :

AVANT :
Code:

├─ 1.9.7 - Rinky.vex
├─ 4.6.2 - Programme 1.3.vex
└─ 4.6.2 - Mika.vex
 


APRES :
Code:

├───1.9.7 - Rinky
|       ├─ 1.9.7 - Rinky.vex
|       └─ 1.9.7 - Rinky.data
├───4.6.2 - Programme 1.3
|       ├─ 4.6.2 - Programme 1.3.vex
|       └─ 4.6.2 - Programme 1.3.data
└───4.6.2 - Mika
|       ├─ 4.6.2 - Mika.vex
|       └─ 4.6.2 - Mika.data
 


________________________

Ensuite il souhaite que dans chaque fichier en .data il y est un début et une fin comme ceci :
Code:

ledebut:

[CONTENU]

:lafin


Et si vous n'avez pas remaqué, ces fichiers en .vex sont sous la forme [troll]ax+b[/troll] :
Code:
[VERSION] [NAME].[EXTENSION]
exemple : 1.2.6 SALUT.vex


Et il veux que le contenu des fichiers data change en fonction de la version :

Code:
set "1.3.5=Commentaire"
IF VERSION == 1.3.5 DO WRITE COMMENTAIRE_ASSOC_VERSION IN DATA FILE


Vexioz a écrit:
Le contenu du .data doit changer en fonction de la version (les chiffres avant le premier espace).


Donc shéma finale :

Code:

├───1.9.7 - Rinky
|       ├─ 1.9.7 - Rinky.vex
|       └─ 1.9.7 - Rinky.data
               └─ [CONTENU] {ledebut:
                            Salut ici c'est la version 1.9.7 et ceci est le commentaire associer a cette version
                            :lafin}
├───4.6.2 - Programme 1.3
|       ├─ 4.6.2 - Programme 1.3.vex
|       └─ 4.6.2 - Programme 1.3.data
               └─ [CONTENU] {ledebut:
                            Salut ici c'est la version 4.6.2 et ceci est le commentaire associer a cette version et chaque commentaire peut être différent des autres
                            :lafin}
└───4.6.2 - Mika
|       ├─ 4.6.2 - Mika.vex
|       └─ 4.6.2 - Mika.data
               └─ [CONTENU] {ledebut:
                            Salut ici c'est la version 4.6.2 et ceci est le commentaire associer a cette version et chaque commentaire peut être différent des autres
                            :lafin}


Voilà j'espère vous avoir éclairer sur la demande d'aide de Vexioz




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R] - Création de dossiers et de fichiers 
Merci Flam Okay Mr. Green

Du coup, ça devrait fonctionner comme suit,
Code:
@Echo Off
 
SetLocal EnableDelayedExpansion
 
For %%F In (*.VEX) Do (
   Move "%%F" "%%~NF\" || Md "%%~NF" && Move "%%F" "%%~NF\"
   For /F "Tokens=1 Delims= " %%$ In ("%%~NF") Do ( Call:%%$ || Call:? )
   >>"%%~NF\%%~NF.data" (
      Echo Le debut:
      Echo[!COM_VERSION!
      Echo :La fin
   )
)
Goto:Eof

:?
Set COM_VERSION=VERSION INCONNUE
Goto:Eof

:0.4.2
Set COM_VERSION=Ceci est le commentaire de la version 0.4.2
Goto:Eof

:1.3.5
Set COM_VERSION=Ceci est le commentaire de la version 1.3.5
Goto:Eof


Suffit de créer une étiquette avec le numéro de version et d'affecter le commentaire à COM_VERSION. On peut
aussi passer par un fichier si tu préfères, ça te raccourcis le boulot de saisie des commentaires...

Et ici le fait d'utiliser plusieurs Blocs d'appels te permet d'optimiser le traitement. En utilisant un seul bloc avec
tout plein de IF tu ne fera que rajouter des instructions inutiles. Ahhhhh, si on pouvais Switch/Case ... Wink


EDIT : Je t'ai rajouté un traitement pour les versions que tu n'aurais pas renseigné Okay




______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Répondre en citant
Message [R] - Création de dossiers et de fichiers 
Il faut peut-êter débugge j'ai pas testé en faît mais l'idée est là.

2 Boucles FOR pour Ça @Logan !!!!

Moi je suis partie du principe que la version on la connaît pas vu que l'on prend les fichiers sur un DIR.


Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [R] - Création de dossiers et de fichiers 
Eh moi je fais ça en mode compréhensible pour le monsieur qu'il puisse le modifier si besoin est, je suis donc partie de son bout de code

Et le deuxième fort c'est pour pouvoir faire mon système de call bidouillé, j'trouve ça beaucoup mieu que des IF à tout va Champion !




______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Répondre en citant
Message [R] - Création de dossiers et de fichiers 
Hello les dormeurs Mr. Green

Tiens, cette fois y'a trois FOR, mais la saisie est plus facile pour VEXIOZ, qui n'aura plus qu'à
définir la variable de défaut des commentaires (utilisée dans le cas où tu n'aurais pas renseigné
un commentaire de version).

Code:
@Echo Off
SetLocal EnableDelayedExpansion

For %%F In (*.VEX) Do (
   Set COM_VERSION=COMMENTAIRE DE VERSION PAR DEFAUT SI PAS RENSEIGNE
   Move "%%F" "%%~NF\" || Md "%%~NF" && Move "%%F" "%%~NF\"
   For /F "Tokens=1 Delims= " %%# In ("%%~NF") Do (
      For /F "Tokens=1,* Delims= " %%X In ('Type %0 ^| Find "#%%#"') Do (
         Set COM_VERSION=%%Y
      )
   )
   >>"%%~NF\%%~NF.data" (
      Echo Le debut:
      Echo[!COM_VERSION!
      Echo :La fin
   )
)

Goto:Eof

#0.4.2 Ceci est le commentaire de la version 0.4.2
#1.3.5 Ceci est le commentaire de la version 1.3.5


Sinon, ici au lieu d'utiliser un fichier TMP on utilise le batch lui-même. En fait c'est juste si t'es
un peu feignant pour pas t'embêter à créer étiquette, le goto EndOfFile et le echo à chaque fois...

Fin je sais pas, je trouve ça beaucoup plus sympas comme ça, moi qui suit feignant Mr. Green


Okay




______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Répondre en citant
Message [R] - Création de dossiers et de fichiers 
Un grand merci Logan, c'est superbe !



Répondre en citant
Message [R] - Création de dossiers et de fichiers 
Content que ça te plaise, je met le sujet en résolu Okay

Bien à toi Wink




______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Message [R] - Création de dossiers et de fichiers 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch