Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- REM @echo off
- setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
- REM goto 1
- ::
- :: Interpréteur de fichier de FR-DOS
- ::
- :: Par Hugo7
- :: batch.xoo.it
- ::
- :: Ne pas copier/redisribuer sans
- :: mon autorisation, merci.
- ::
- title FR-DOS -^> Batch : Traduction en cours...
- if %1_==_ echo. & echo Veuillez ouvrir un fichier .fl et non directement ceci. & echo. & pause & exit
- for %%D in (%1) do (
- set dir=%%~pD
- set nm=%%~nD
- )
- cd %dir%
- echo :: FICHIER FR-DOS CONVERTI EN BATCH>%nm%.bat
- echo cd/d %dir%>>%nm%.bat
- echo.>>%nm%.bat
- echo :: DEBUT CODE>>%nm%.bat
- echo.>>%nm%.bat
- echo.>>%nm%.bat
- :1
- REM set nm=2
- for /f "tokens=* delims=&" %%A in (%1) do (
- set c1=%%A
- REM :: labels, commentaires en 1 ligne, cmds MS-DOS, exit, @echo off/on
- if /i "!c1:~0,1!"==":" echo %%A>>%nm%.bat
- if /i "!c1:~0,1!"=="#" echo ::%%A>>%nm%.bat
- if /i "!c1:~0,3!"=="}}/" echo !c1:~3!>>%nm%.bat
- if /i "!c1:~0,6!"=="sortir" echo exit>>%nm%.bat
- if /i "!c1:~0,7!"=="@echo o" echo !c1!>>%nm%.bat
- :: commandes en 1 ligne
- if /i "!c1:~0,1!"=="" echo.>>%nm%.bat
- if /i "!c1:~0,5!"=="aller" echo goto !c1:~5!>>%nm%.bat
- if /i "!c1:~0,3!"=="ren" echo ren !c1:~3!>>%nm%.bat
- if /i "!c1:~0,5!"=="suppr" echo del !c1:~5!>>%nm%.bat
- if /i "!c1:~0,4!"=="voir" echo type !c1:~4!>>%nm%.bat
- if /i "!c1:~0,7!"=="trouver" echo findstr !c1:~7!>>%nm%.bat
- if /i "!c1:~0,1!"=="$" echo %%!c1!%% >>%nm%.bat
- if /i "!c1:~0,2!"=="cd" echo md !c1:~2!>>%nm%.bat
- if /i "!c1:~0,3!"=="pos" echo cd !c1:~3!>>%nm%.bat
- if /i "!c1:~0,5!"=="titre" echo title !c1:~5!>>%nm%.bat
- if /i "!c1:~0,8!"=="afficher" (
- for /f "tokens=1,* delims= " %%D in ("!c1:~8!") do (
- set pr=%%D
- if "!pr:~0,1!"=="$" (
- set cTEMP=!c1:~8!
- set cTEMP2=!cTEMP: =!
- echo echo %%!cTEMP2!%% >>%nm%.bat
- ) else (
- if /i "!pr:~0,1!"=="@" (
- set cTEMP=!c1:~8!
- echo echo !cTEMP:@=%%! >>%nm%.bat
- ) else echo echo !c1:~8!>>%nm%.bat
- )
- )
- )
- if /i "!c1:~0,3!"=="met" (
- for /f "tokens=1,2,* delims= " %%M in ("!c1:~3!") do (
- set mt=%%O
- if "!mt:~0,1!"=="$" (
- echo set %%M=%%!mt!%% >>%nm%.bat
- ) else echo set %%M=%%O>>%nm%.bat
- )
- )
- REM :: cmds composees
- REM :: si -> if
- if /i "!c1!"=="sinon" (
- echo ^) else ^(>>%nm%.bat
- set siT=1
- )
- if /i "!c1:~0,2!"=="si" if /i not "!c1:~0,3!"=="sin" (
- for /f "tokens=1,2,3,4 delims= " %%A in ("!c1:~2!") do (
- if "%%C"=="" (
- start erreur.vbs "Si invalide nombre d'arguments inssufisant." "If_args_2"
- exit
- )
- set c3=%%A
- set 2e=%%B
- if /i "!c3!"=="/i" (
- set commutateurSI=/i
- set variableSI=%%!2e!%%
- set op=%%C
- set dernier=%%D
- ) else (
- set commutateurSI=
- if /i "!c3:~0,1!"=="$" set variableSI=%%!c3!%%
- set op=%%B
- set dernier=%%C
- )
- )
- if /i not "%siT%"=="1" echo if !commutateurSI! "!variableSI!" !op! "!dernier!" ^(>>%nm%.bat
- set siT=0
- )
- if /i "!c1!"=="finalors" echo ^)>>%nm%.bat
- if /i "!c1!"=="finsinon" echo ^)>>%nm%.bat
- rem :: Fin si
- rem :: BoiteDeMessage -> msgbox
- if /i "!c1:~14!"=="BoiteDeMessage" (
- for /f "tokens=1,2,3 delims=," %%A in ("!c1:~14!") do (
- set 1eA=%%A
- if "!1eA:~0,1!"=="$" (
- set 1eAv2=%%!1eA!%%
- ) else set 1eAv2=!1eA!
- echo echo msgbox "!1eAv2!", %%B, "%%C"^>^>temp.vbs>>%nm%.bat
- )
- )
- rem :: Pour -> for
- REM pour /0 @@A dans (fichier.txt)
- REM pour /f "jetons=1,2 limites=:" @@B dans (' voir fichier.txt ^| trouver "floup"')
- REM pour /l @@D dans ('début;pas;fin')
- if /i "!c1:~0,4!"=="pour" if /i not "!c1:~5,2!"=="/f" (
- for /f "tokens=1,2,3,* delims= " %%P in ("!c1:~4!") do (
- set comPOUR=%%P
- set varPOUR=%%Q
- set in_POUR=%%S
- for /f "delims=@" %%A in ("%%Q") do (
- set varPOUR2=%%A
- set varPOUR3=%%%%!varPOUR2!
- )
- for /f "delims=()" %%C in ("%%S") do (
- set contenuPOUR=%%C
- )
- if /i "!comPOUR!"=="/0" set comPOUR=
- echo for !comPOUR! !varPOUR3! in ^(!contenuPOUR!^) do ^(>>%nm%.bat
- )
- )
- rem :: Traduction de for /f
- if /i "!c1:~0,4!"=="pour" if /i "!c1:~5,2!"=="/f" (
- for /f "tokens=1,2,* delims=[]" %%F in ("!c1:~4!") do (
- set debPOUR=%%F
- set argsPOUR=%%G
- set finPOUR=%%H
- for /f "delims=@" %%A in ("!finPOUR:~1,3!") do (
- set varPOUR2=%%A
- set varPOUR3=%%%%!varPOUR2!
- )
- for /f "tokens=1,2,3,4,5,6,7,8 delims== " %%A in ("!argsPOUR!") do (
- set eol=%%B
- set skip=%%D
- set tokens=%%F
- set delims=%%H
- if /i "%%B"=="NON" set eol=
- if /i "%%D"=="NON" set skip=
- if /i "%%F"=="NON" set tokens=
- if /i "%%H"=="NON" set delims=
- set argsPOURv2=eol=!eol! skip=!skip! tokens=!tokens! delims=!delims!
- )
- echo for /f "!argsPOURv2!" !varPOUR3! !finPOUR:~4! do ^(>>%nm%.bat
- )
- )
- if /i "!c1:~0,7!"=="finpour" echo ^)>>%nm%.bat
- )
- endlocal
- pause
- REM exit/b
- %nm%
- del %nm%.bat
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement