Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- ::
- :: Jeu du code le plus compact, proposé par Hugo
- ::
- :: Voici le code de référence, qui prouve que le résultat attendu est possible!
- ::
- :: Votre mission (si vous l'acceptez..), est de simplifier ce code que j'ai volontairement détaillé.
- :: Le résultat sera exprimé en octets et non en nombre de lignes, une fois TOUS les commentaires supprimés.
- ::
- set fichier_yaml=fichier.yml
- setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
- ::reset de output.txt
- echo.>output.txt
- echo Traitement en cours...
- :: %%L > L comme ligne... Le traitement de ce FOR ignore TOUS les espaces en début de ligne dans le yml.
- for /f "eol=# tokens=*" %%L in ('type %fichier_yaml%') do (
- set ligne=%%L
- :: %%S > S comme str, et ça tombe bien par ce que %%T sera pour le titre ^^
- if "!ligne:~0,1!"=="c" (
- for /f "tokens=1,* delims=:" %%S in ('echo !ligne!') do (
- :: On enlève l'espace qu'il y a entre les : et le texte qui suit
- set titre=%%T
- set etitre=!titre:~1!
- if "!etitre!"=="" (
- echo null>>output.txt
- ) else echo !etitre!>>output.txt
- )
- )
- REM pause
- if "!ligne:~0,1!"=="s" (
- for /f "tokens=1,* delims=:" %%S in ('echo !ligne!') do (
- set sstitre=%%T
- set esstitre=!sstitre:~1!
- if "!esstitre!"=="" (
- echo ^| null>>output.txt
- ) else echo ^| !esstitre!>>output.txt
- )
- )
- if "!ligne:~0,1!"=="t" (
- for /f "tokens=1,* delims=:" %%S in ('echo !ligne!') do (
- set texte=%%T
- set etexte=!texte:~1!
- if "!etexte!"=="" (
- echo ^| ^| null>>output.txt
- ) else echo ^| ^| !etexte!>>output.txt
- )
- )
- if "!ligne:~0,1!"=="@" echo.>>output.txt
- REM pause
- )
- endlocal
- pause
- cls
- :: On ne met pas TYPE à cause des accents qui n'y passent pas, pourtant ces accents sont bien présents dans output.txt.
- notepad output.txt
- pause
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement