:: wrk2txt.bat ==> Transforma/Convierte a *.TXT los archivos Symphony.exe archivo extensión *.WRK :: - Forma de Uso: X:\DIR\SubDir> wrk2txt *.txt *.etc :: - Cada archivo original queda modificado [ver: gsar -o ...] :: - Si quiere preservar el original, debe copiarlo antes de aplicarle :: este comando a un archivo o a un grupo de archivos :: wrk2txt.bat ==> Transforms/Converts into *.TXT Symphony.exe files file extension *.WRK :: :: - Usa el programa GSAR.exe que se puede conseguir aquí: :: - http://home.online.no/~tjaberg/ ==> gsar121.zip [o más nuevo] :: - Este método es muy lerdo, pero la verdad es que sí funciona. :: - Bueno, a mí me funcionó en Win.XP de 32 bits... :: - Cierto: a veces se come una que otra letrilla... :: - Si quiere ver lo que está pasando, elimine >NUL :: - A veces se come -u -b -i y lo cambia por `` (abre comilla) :: - Versión 1.0 (c) adolfo@di-mare.com 2010 @echo off if (%2)==(++01++) goto _recursive_a_z if (%2)==(++02++) goto _recursive_FF_00 if (%1)==() goto _help :: recuerda el nombre de este archivo de comandos set "__wrk2txt_bat=%0" :_doit if not exist "%1" echo Falta: %1 if not exist "%1" goto _shift :: echo [%1] [%2] [%3] echo [%1] == CAMBIANDO :: Pone los cambios de línea ( Ctrl-T ) gsar -o -s:x14 "-r:x0D:x0A" %1>NUL :: :x14 == Ctrl-T señala nuevo renglón :: Maneja el caso en que :x0F precede letras gsar -o -s:x0F -r:x00 %1>NUL :: Evita comerse algunas letras precedidas por :x00 gsar -o -s:x00:x02:x00:x02:x00 "-r " %1>NUL :: Evita borrar algunas letras precedidas por muchos ceros set "__wrk2txt=a b c d e f g h i j k l m n o p q r s t u v w x y z" for %%a in (%__wrk2txt%) do call "%__wrk2txt_bat%" %1 ++01++ %%a set "__wrk2txt=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" for %%a in (%__wrk2txt%) do call "%__wrk2txt_bat%" %1 ++01++ %%a :: OJO: llamado recursivo :: quita todo char(*) si viene precedido por :x00 set "__wrk2txt=F E D C B A 9 8 7 6 5 4 3 2 1 0" :: OJO: llamado recursivo for %%a in (%__wrk2txt%) do for %%b in (%__wrk2txt%) do call "%__wrk2txt_bat%" %1 ++02++ %%a%%b :: el :x00 es el que se hace de último para no borrarlo al principio set "__wrk2txt=" goto _brinque_recursive :_recursive_a_z gsar -o -s:x00:x00:x00:x00:x00:x00:x00:x00:x00:x00%3 "-r' %3" %1>NUL goto _out :_recursive_FF_00 :: (%3)==(27) echo [%1] [%2] [%3] if (%3)==(20) goto _out if (%3)==(27) goto _out gsar -o -s:x00:x%3 -r:x00 %1>NUL :: se brinca \'=:x27 porque esa es la marca de principio de renglón :: se brinca SP=:x20 porque luego maneja espacios goto _out :_brinque_recursive :: ahora ya se puede eliminar todo char(0) y char(0)' (comilla :x27) gsar -o -s:x00:x27 "-r " %1>NUL gsar -o -s:x00 "-r" %1>NUL gsar -o -s:xFF "-r" %1>NUL :: quita char(?*#) feo del encabezado ?*#MAIN gsar -o -s:x01:x61 -r:x61 %1>NUL gsar -o -s:x06:x02 "-r " %1>NUL gsar -o -s:x06:x2F:x02 "-r " %1>NUL gsar -o -s:x65:x47:x01 "-r " %1>NUL gsar -o -s:x65:x53:x01 "-r " %1>NUL :: Quita el x01:x27 que deja manchados muchos renglones for %%a in (1 2 3 4 5 6 7 8 9) do gsar -o -s:x0%%a:x27 "-r " %1>NUL :: Quita unas comillas incómodas al principio del renglón gsar -o "-s:x0D:x0A'" "-r:x0D:x0A" %1>NUL :: Pone comillas abiertas y cerradas `` '' gsar -o -i -s:x97u -r`` %1>NUL gsar -o -i -s:x97b -r`` %1>NUL gsar -o -i -s:x97i -r`` %1>NUL gsar -o -s:x98 -r'' %1>NUL :: :x97=— es un guión larguito diferente a - — :: :x98=˜ es una comilla — :: - A veces se come la (u b i)- :: - A veces queda -u en lugar de ``u... :_shift :: Esta es la salida final shift if (%1)==() set __wrk2txt_bat= if (%1)==() goto _out goto _doit :_help echo. echo - FALTA ARGUMENTO echo - Forma de uso: X:\DIR\SubDir) wrk2txt *.txt *.etc echo. goto _out :: - Encontré que los archivos .WRK tienen al principio de cada :: renglón un montón de caracteres precedidos por :x00. :: - Por eso lo que hice fue eliminar cualquier caracter que :: venga precedido por :x00. :: - Se come cualquier letra que esté precedida por :x00. :: - Con el fin de evitar quitar los :x00 de primeros, hice que :: el ciclo for()for() cambie de último los ceros, poniendo :: los valores alverres en %__wrk2txt% :: :x00:x0F:x00:x4F:x00:xFF:x00:x00:x01:x00:x27 :: :x00:x0F:x00:x51:x00:xFF:x00:x00:x05:x00:x27 :: :x00:x0F:x00:x50:x00:xFF:x00:x00:x06:x00:x27 :: :x00:x0F:x00:x4F:x00:xFF:x00:x00:x12:x00:x27 :: :x00:x0F:x00:x2F:x00:xFF:x00:x00:x16:x00:x27 :: :x00:x0F:x00:x2C:x00:xFF:x00:x00:x1A:x00:x27 :: :x00:x0F:x00:x52:x00:xFF:x00:x00:x18:x00:x27 :: :x00:x0F:x00:x4F:x00:xFF:x00:x00:x04:x00:x27 :: :x00:x0F:x00:x5F:x00:xFF:x00:x00:x03:x00:x27 :: :x57 W :x21 ! :: :x59 Y :x22 " :: :x5A Z :x24 $ :: :x5F _ :x25 % :: :x2F / :: :x30 0 <==> :x39 9 :: :x14 señala nuevo renglón goto _out :_out :: wrk2txt.bat ==> Fin de archivo