Advertisement
Hugo7

FR-DOS actuellement

May 5th, 2015
587
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 4.61 KB | None | 0 0
  1. REM @echo off
  2.  
  3. setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
  4. REM goto 1
  5. ::
  6. ::  Interpréteur de fichier de FR-DOS
  7. ::
  8. ::            Par Hugo7
  9. ::           batch.xoo.it
  10. ::
  11. ::  Ne pas copier/redisribuer sans
  12. ::     mon autorisation, merci.
  13. ::
  14.  
  15.  
  16. title FR-DOS -^> Batch : Traduction en cours...
  17.  
  18.  
  19. if %1_==_ echo. & echo Veuillez ouvrir un fichier .fl et non directement ceci. & echo. & pause & exit
  20.  
  21.  
  22. for %%D in (%1) do (
  23. set dir=%%~pD
  24. set nm=%%~nD
  25. )
  26. cd %dir%
  27. echo :: FICHIER FR-DOS CONVERTI EN BATCH>%nm%.bat
  28. echo cd/d %dir%>>%nm%.bat
  29. echo.>>%nm%.bat
  30. echo ::   DEBUT CODE>>%nm%.bat
  31. echo.>>%nm%.bat
  32. echo.>>%nm%.bat
  33.  
  34. :1
  35. REM set nm=2
  36.  
  37.  
  38. for /f "tokens=* delims=&" %%A in (%1) do (
  39. set c1=%%A
  40.  
  41.  
  42. REM :: labels, commentaires en 1 ligne, cmds MS-DOS, exit, @echo off/on
  43. if /i "!c1:~0,1!"==":" echo %%A>>%nm%.bat
  44. if /i "!c1:~0,1!"=="#" echo ::%%A>>%nm%.bat
  45. if /i "!c1:~0,3!"=="}}/" echo !c1:~3!>>%nm%.bat
  46. if /i "!c1:~0,6!"=="sortir" echo exit>>%nm%.bat
  47. if /i "!c1:~0,7!"=="@echo o" echo !c1!>>%nm%.bat
  48.  
  49.  
  50. :: commandes en 1 ligne
  51. if /i "!c1:~0,1!"=="" echo.>>%nm%.bat
  52. if /i "!c1:~0,5!"=="aller" echo goto !c1:~5!>>%nm%.bat
  53. if /i "!c1:~0,3!"=="ren" echo ren !c1:~3!>>%nm%.bat
  54. if /i "!c1:~0,5!"=="suppr" echo del !c1:~5!>>%nm%.bat
  55. if /i "!c1:~0,4!"=="voir" echo type !c1:~4!>>%nm%.bat
  56. if /i "!c1:~0,7!"=="trouver" echo findstr !c1:~7!>>%nm%.bat
  57. if /i "!c1:~0,1!"=="$" echo %%!c1!%% >>%nm%.bat
  58. if /i "!c1:~0,2!"=="cd" echo md !c1:~2!>>%nm%.bat
  59. if /i "!c1:~0,3!"=="pos" echo cd !c1:~3!>>%nm%.bat
  60. if /i "!c1:~0,5!"=="titre" echo title !c1:~5!>>%nm%.bat
  61.  
  62.  
  63.  
  64. if /i "!c1:~0,8!"=="afficher" (
  65. for /f "tokens=1,* delims= " %%D in ("!c1:~8!") do (
  66. set pr=%%D
  67. if "!pr:~0,1!"=="$" (
  68. set cTEMP=!c1:~8!
  69. set cTEMP2=!cTEMP: =!
  70. echo echo %%!cTEMP2!%% >>%nm%.bat
  71. ) else (
  72. if /i "!pr:~0,1!"=="@" (
  73. set cTEMP=!c1:~8!
  74. echo echo !cTEMP:@=%%! >>%nm%.bat
  75. ) else echo echo !c1:~8!>>%nm%.bat
  76. )
  77.  
  78. )
  79. )
  80.  
  81. if /i "!c1:~0,3!"=="met" (
  82. for /f "tokens=1,2,* delims= " %%M in ("!c1:~3!") do (
  83. set mt=%%O
  84. if "!mt:~0,1!"=="$" (
  85. echo set %%M=%%!mt!%% >>%nm%.bat
  86. ) else echo set %%M=%%O>>%nm%.bat
  87. )
  88. )
  89.  
  90. REM :: cmds composees
  91.  
  92. REM :: si -> if
  93.  
  94. if /i "!c1!"=="sinon" (
  95. echo ^) else ^(>>%nm%.bat
  96. set siT=1
  97. )
  98.  
  99.  
  100.  
  101. if /i "!c1:~0,2!"=="si" if /i not "!c1:~0,3!"=="sin" (
  102.  
  103.  
  104.  for /f "tokens=1,2,3,4 delims= " %%A in ("!c1:~2!") do (
  105.   if "%%C"=="" (
  106.   start erreur.vbs "Si invalide nombre d'arguments inssufisant." "If_args_2"
  107.   exit
  108.   )
  109.   set c3=%%A
  110.   set 2e=%%B
  111.   if /i "!c3!"=="/i" (
  112.    set commutateurSI=/i
  113.    set variableSI=%%!2e!%%
  114.    set op=%%C
  115.    set dernier=%%D
  116.   ) else (
  117.    set commutateurSI=
  118.    if /i "!c3:~0,1!"=="$" set variableSI=%%!c3!%%
  119.    set op=%%B
  120.    set dernier=%%C
  121.   )
  122.  )
  123.  
  124.  
  125.  if /i not "%siT%"=="1" echo if !commutateurSI! "!variableSI!" !op! "!dernier!" ^(>>%nm%.bat
  126.  set siT=0
  127. )
  128.  
  129.  
  130.  
  131. if /i "!c1!"=="finalors" echo ^)>>%nm%.bat
  132. if /i "!c1!"=="finsinon" echo ^)>>%nm%.bat
  133. rem :: Fin si
  134.  
  135.  
  136.  
  137. rem :: BoiteDeMessage -> msgbox
  138. if /i "!c1:~14!"=="BoiteDeMessage" (
  139. for /f "tokens=1,2,3 delims=," %%A in ("!c1:~14!") do (
  140. set 1eA=%%A
  141. if "!1eA:~0,1!"=="$" (
  142. set 1eAv2=%%!1eA!%%
  143. ) else set 1eAv2=!1eA!
  144. echo echo msgbox "!1eAv2!", %%B, "%%C"^>^>temp.vbs>>%nm%.bat
  145.  
  146. )
  147. )
  148.  
  149.  
  150. rem :: Pour -> for
  151. REM     pour /0 @@A dans (fichier.txt)
  152. REM     pour /f "jetons=1,2 limites=:" @@B dans (' voir fichier.txt ^| trouver "floup"')
  153. REM     pour /l @@D dans ('début;pas;fin')
  154. if /i "!c1:~0,4!"=="pour" if /i not "!c1:~5,2!"=="/f" (
  155. for /f "tokens=1,2,3,* delims= " %%P in ("!c1:~4!") do (
  156.  
  157. set comPOUR=%%P
  158. set varPOUR=%%Q
  159. set in_POUR=%%S
  160.  
  161. for /f "delims=@" %%A in ("%%Q") do (
  162. set varPOUR2=%%A
  163. set varPOUR3=%%%%!varPOUR2!
  164. )
  165.  
  166. for /f "delims=()" %%C in ("%%S") do (
  167. set contenuPOUR=%%C
  168. )
  169.  
  170. if /i "!comPOUR!"=="/0" set comPOUR=
  171.  
  172. echo for !comPOUR! !varPOUR3! in ^(!contenuPOUR!^) do ^(>>%nm%.bat
  173.  
  174.  
  175. )
  176. )
  177.  
  178. rem :: Traduction de for /f
  179. if /i "!c1:~0,4!"=="pour" if /i "!c1:~5,2!"=="/f" (
  180. for /f "tokens=1,2,* delims=[]" %%F in ("!c1:~4!") do (
  181. set debPOUR=%%F
  182. set argsPOUR=%%G
  183. set finPOUR=%%H
  184.  
  185. for /f "delims=@" %%A in ("!finPOUR:~1,3!") do (
  186. set varPOUR2=%%A
  187. set varPOUR3=%%%%!varPOUR2!
  188. )
  189.  
  190. for /f "tokens=1,2,3,4,5,6,7,8 delims== " %%A in ("!argsPOUR!") do (
  191. set eol=%%B
  192. set skip=%%D
  193. set tokens=%%F
  194. set delims=%%H
  195. if /i "%%B"=="NON" set eol=
  196. if /i "%%D"=="NON" set skip=
  197. if /i "%%F"=="NON" set tokens=
  198. if /i "%%H"=="NON" set delims=
  199. set argsPOURv2=eol=!eol! skip=!skip! tokens=!tokens! delims=!delims!
  200. )
  201.  
  202. echo for /f "!argsPOURv2!" !varPOUR3! !finPOUR:~4! do ^(>>%nm%.bat
  203.  
  204. )
  205. )
  206.  
  207.  
  208. if /i "!c1:~0,7!"=="finpour" echo ^)>>%nm%.bat
  209.  
  210.  
  211.  
  212. )
  213.  
  214.  
  215. endlocal
  216.  
  217.  
  218. pause
  219. REM exit/b
  220.  
  221.  
  222. %nm%
  223. del %nm%.bat
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement