|
Mostrar Mensajes
|
Páginas: [1] 2 3
|
1
|
Programación / Scripting / Re: Librería de funciones y scripts BATCH Actualizado 26/05/07
|
en: 6 Julio 2011, 02:10 am
|
Este me ha gustado, mucha imaginación en el code,pero lo he copiado tal cual y no me funciona :/...
saludos
Recien me hice un tiempo para leer tu mensaje: Mira no lo he revisado correctamente pero si es la misma version que tengo en mi pc a mi me anda sin problemas. Si hay un error proba cerrar el bucle con un goto end despues del endlocal. Decime que entrada le diste. Se supone que tiene que admitir estos parametros: Art [tamaño en numero de lineas] [<numero de puerta n1> <numero de puerta n2>...] Art 22 15 13 8 5 crea un diseño de 22 lineas en pantalla una puerta de 3 caracteres en el 8o caracter desde el centro y otra puerta de dos caracteres en el 13o desde el centro. Es cierto que se me pierden algunas aristas pero el desplazamiento parece correcto por cierto no se si viste ese "call wait.bat 2" sin ese archivo se temina el proceso abruptamente podes remarcar el comando o hacerte un batch de espera del tipo @ping -w 1000 127.0.0.1>nul
|
|
|
2
|
Programación / Scripting / Re: Librería de funciones y scripts BATCH Actualizado 26/05/07
|
en: 24 Junio 2011, 01:31 am
|
Un poquito de juego al caso y de paso sentar la base para aplicaciones graficas dentro de un TUI. A dar volumen a la cosa con un poco de ayuda del desvirtuado ASCIIart. Rem Path3D.bat by biTEBUG @echo off set a=%2 set b=%3 set c=%4 set d=%5 set e=%6 set f=%7 set g=%8 set switcha=* set switchb=* set switchc=* set switchd=* set switche=* set switchf=* set switchg=* :ini set marco=-1 cls set door=1 set cvisual=1 set lcenter= set rcenter=. set horizon= set fpoint=x set infarist=/ \ set height=%1 :umbral set horizon=%horizon% set /a cvisual=%cvisual%+1 if not %cvisual%==%height% goto umbral :fuga if not "%marco%"=="1" ( echo %lcenter:.=^|%\%horizon%%horizon%/%lcenter:.= % ) else ( echo.%lcenter:.=^|%%horizon%.%horizon%/%lcenter:.= %) set horizon=%horizon:~1% if "%cvisual%"=="%a%" goto door if "%cvisual%"=="%b%" goto door if "%cvisual%"=="%c%" goto door if "%cvisual%"=="%d%" goto door if "%cvisual%"=="%e%" goto door if "%cvisual%"=="%f%" goto door if "%cvisual%"=="%g%" goto door goto notdoor :door (set /a marco=%marco%*-1 set /a door=%door%*0) :notdoor if not "%door%"=="1" (set lcenter=%lcenter%.) else (set lcenter=%lcenter% ) set door=1 set /a cvisual=%cvisual%-1 if not %cvisual%==0 goto fuga echo %lcenter:.=^|%\%horizon%%horizon%/%lcenter:.= % :captura echo %lcenter:.=^|%/%horizon%%horizon%\%lcenter:.= % set horizon=%horizon% set lcenter=%lcenter:~,-1% set /a cvisual=%cvisual%+1 if not %cvisual%==%height% goto captura if not %cvisual%==%height% goto captura endlocal goto forward if "%a%" gtr "%1" set switcha=/ if "%b%" gtr "%1" set switchb=/ if "%c%" gtr "%1" set switchc=/ if "%d%" gtr "%1" set switchd=/ if "%e%" gtr "%1" set switche=/ if "%f%" gtr "%1" set switchf=/ if "%g%" gtr "%1" set switchg=/ if "%a%"=="1" set switcha=* if "%b%"=="1" set switchb=* if "%c%"=="1" set switchc=* if "%d%"=="1" set switchd=* if "%e%"=="1" set switche=* if "%f%"=="1" set switchf=* if "%g%"=="1" set switchg=* :if %a% gtr %1 goto stop if "%a%" gtr "%1" set a=%2 if "%b%" gtr "%1" set b=%3 if "%c%" gtr "%1" set c=%4 echo if "%c%" gtr "%1" set c=%4 if "%d%" gtr "%1" set d=%5 if "%e%" gtr "%1" set e=%6 if "%f%" gtr "%1" set f=%7 if "%g%" gtr "%1" set g=%8 echo if "%c%" gtr "%1" set c=%4 :forward if defined a set /a a=%a%%switcha%2 if defined b set /a b=%b%%switchb%2 if defined c set /a c=%c%%switchc%2 if defined d set /a d=%d%%switchd%2 if defined e set /a e=%e%%switche%2 if defined f set /a f=%f%%switchf%2 if defined g set /a g=%g%%switchg%2 call wait 2 goto ini :stop
\ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / | . / | . / | |\ / | | \ / | | \ / | | \ / | | | . / | | ||\ / | | || \ / | | || \ / | | || \ / | | || \/ | | || /\ | | || / \ | | || / \ | | || / \ | | ||/ \ | | |/ \ | | / \ | | / \ | | / \ | |/ \ | / \ |/ \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \
|
|
|
3
|
Programación / Scripting / Re: Librería de funciones y scripts BATCH Actualizado 26/05/07
|
en: 18 Junio 2011, 04:09 am
|
TYPE HEXADECIMAL PARA DOS @echo off rem dump.bat setlocal enabledelayedexpansion set byte= set offset= set op1= set op2= if %1==/h goto help if %1==/p (set op1=%1 shift) if %1==/pp (set op2=%1 shift) if not exist %1 ( set errorlevel=1 echo no se encuentra el archivo %1 goto end ) ( Echo;E %~z1 "%~s1" Echo;D 0 %~z1 Echo;Q )>d debug %~s1<d>dmp del d if not defined op1 if not defined op2 (type dmp del dmp goto end) if not defined op1 goto op2 for /f "tokens=*" %%x in (dmp) do (set unformatted=%%x set formatted=!unformatted: = ; ! echo !formatted!>>dig) for /f "eol=; tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15" %%a in (dig) do (set offset=%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n set offset=!offset:;=! echo !offset:-= ! ) del dmp del dig goto end :op2 for /f "tokens=*" %%x in (dmp) do (set unformatted=%%x set formatted=!unformatted: = ; ! echo !formatted!>>dig) for /f "eol=; tokens=2,3,4,5,6,7,8,9,10,11,12,13,14,15" %%a in (dig) do (set offset=%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m set offset=!offset:;=! echo !offset:-= ! ) goto end :Help echo Muestra el contenido binario de un archivo, echo. echo y la sintaxis es la siguiente: echo Dump ^</p^> ^</pp^> ^<[unidad\ruta\archivo]^> echo /p Omitira mostrar el texto en ascii echo /pp Solo mostrara el codigo hexadecimal :end del dmp del dig :end set byte= set offset=
|
|
|
5
|
Programación / Scripting / Re: Librería de funciones y scripts BATCH Actualizado 26/05/07
|
en: 18 Junio 2011, 03:53 am
|
COMPARADOR COMPRIMIDOS/CARPETAS Puede resultar util si como yo nunca borran los archivos comprimidos luego de extraerlos, a menos que se les llene un disco. Rardel.bat rem rardel a estrenar dir /b " %~1\* !query!*" >suspects for /f "delims=" %%y in (suspects ) do (echo LC " %1%%y" " %~2%%x" title Comparando " %1%%y" " %~2%%x"... call lc " %1%%y" " %~2%%x" )) type extracted.log :help echo Rardel junto con lcrar compara archivos rar y carpetas masivamente echo Rardel [ruta 1] [ruta 2] ruta 1 ruta de la carpeta que contiene los archivos rar a comparar ruta 2 ruta de la carpèta que contiene los archivos con los que se desea comparar :end
(Me han dicho que el numero correcto para comp es 999999999 y no 79999.... pero en mi sistema funciona bien asi como esta, asi que si les da algun pronlema solo cambien el numero luego de "comp=" por 999999999) Lcrar.bat title Comparando %1 %2... if " %3"=="" set registro=extracted.log rem a revisar pero aparrentemente funcionando rem extrayendo if exist " %tmp%\rfc\nowchecking\" rd /s /q " %tmp%\rfc\nowchecking\" if exist " !tmp!\rfc" rd /s /q " %tmp%\temp\rfc" md " %tmp%\rfc\muestras\originales" md " %tmp%\rfc\muestras\copias" "C:\Archivos de programa\WinRAR\RAR.exe" e -o+ %1 * " %tmp%\rfc\nowchecking\" >nulrem creando muestras rem originales comp /n=799999999999 "%%x" "%%~nx"32l<c>32l for /f "skip=2 tokens=5" %%y in (32l ) do set maxlines= %%y rem corregido revision de tags ID3 rem hay que separar casos set /a baseline= !maxlines!/2 set /a line1= !baseline!+1 set /a line2= !baseline!+2 set /a line3= !baseline!+3 set /a line4= !baseline!+4 set /a lastline=baseline+5 (findstr /n "." "%%x">"!tmp!\% style="color: #448888;">%~nx"pl rem encontrar linea y volcar: el destino parece incorrecto a como de lugar rem la ruta de redireccion debe existir rem el tamaño del archivo no aumentaba porque el volcado estaba sobreescribiendo findstr "^^!baseline!: ^^!line1!: ^^!line2!: ^^!line3!: ^^!line4!: ^^!lastline!:" "!tmp!\% style="color: #448888;">%~nx"pl>>"!tmp!\rfc\muestras\originales\% style="color: #448888;">%~nx.lc" del " !tmp!\% style="color: #448888;">%~nx"pl ) ) rem copias for /f "tokens=*" %%x in (tubo.rfc ) do (set file= %%x copy " !file!" "!file:~-8,5!"32l >nul echo 32l >>" !file:~-8,5!"32l comp /n=799999999999 "!file!" "!file:~-8,5!"32l<c>32l for /f "skip=2 tokens=5" %%y in (32l ) do set maxlines= %%y set /a baseline= !maxlines!/2 set /a line1= !baseline!+1 set /a line2= !baseline!+2 set /a line3= !baseline!+3 set /a line4= !baseline!+4 set /a lastline= !baseline!+5 (findstr /n "." "!file!">"!tmp!\"% style="color: #448888;">%~nx"pl findstr "^^!baseline!: ^^!line1!: ^^!line2!: ^^!line3!: ^^!line4!: ^^!lastline!:" "!tmp!\% style="color: #448888;">%~nx"pl>>"!tmp!\rfc\muestras\copias\% style="color: #448888;">%~nx.lc" del " !tmp!\% style="color: #448888;">%~nx"pl ) ) rem hasta aqui va bien REM COMPARANDO MUESTRAS for %%x in (" !tmp!\rfc\muestras\originales\*" ) do ( set /a totalfiles= !totalfiles!+1 for %%y in (" !tmp!\rfc\muestras\copias\*" ) do if not !found!==1 (fc "%% style="color: #448888;">x" "%%y">nul ) ) echo %interrorlevel%/ %totalfiles% set /a rate= %interrorlevel:~1%00/ %totalfiles% rem if %interrorlevel:~1%==%totalfiles% move %1 %3\%1 if !rate! geq 87 echo %1 %rate% %%>>%registro% rem casi casi 0k :help echo Lc comparara archivos en el disco duro con sus supuestas imagenes dentro de un archivo rar o zip echo La sintaxis de lc es la siguiente: echo Lc [/h] ^<imagen ^> ^<carpeta ^> ^<archivo de registro ^> echo /h muestra este texto echo ^<imagen ^> Ruta completa del archivo rar o zip que se desea comparar echo ^<carpeta ^> Ruta de la carpeta que contiene los archivos con los que se desea comparar echo ^<archivo de registro ^> Archivo que llevara el registro de los archivos comprimidos que coinciden ^(de no especificarse se usara el rachivo por defecto ^) :end
Es un tanto rudo pero funciona bien con menos de 10 archivos si son grandes dependiendo de la cantidad de memoria virtual disponible, lcrar no considera dos archivos iguales (aun). si alguno de los dos o ambos fueron modificados con metadata. Se que hay metodos mas sofisticados y estoy trabajando en ellos, asi como lograr sortear los tags. Si alguien considera que se puede mejorar, o sabe de alguna forma de ampliar la memoria virtual puede comentar.
|
|
|
7
|
Programación / Scripting / Re: Batch para saber si un archivo comprimido ya fue extraido dentro de una carpeta
|
en: 15 Junio 2011, 22:52 pm
|
Gracias pitoloko, tengo muchos mas en los que estoy trabajando y otros que andan perdidos entre los archivos de mi carpeta de administrador, porque como ya habras visto soy muy desordenado y raramente etiqueto o pongo una sección de ayuda en mis batchs asi que pocas veces recuerdo para que los hice luego de creados :S
Tendre que perder un fin de semana averiguando para que carajo sirven todos esos archivos .bat con nombres raros y etiquetandolos
|
|
|
9
|
Programación / Scripting / Type hexadecimal para dos
|
en: 15 Junio 2011, 06:09 am
|
@echo off rem dump.bat setlocal enabledelayedexpansion set byte= set offset= set op1= set op2= if %1==/p (set op1=%1 shift) if %1==/pp (set op2=%1 shift) if not exist %1 ( set errorlevel=1 echo no se encuentra el archivo %1 goto end ) ( Echo;E %~z1 "%~s1" Echo;D 0 %~z1 Echo;Q )>d debug %~s1<d>dmp del d if not defined op1 if not defined op2 (type dmp del dmp goto end) if not defined op1 goto op2 for /f "tokens=*" %%x in (dmp) do (set unformatted=%%x set formatted=!unformatted: = ; ! echo !formatted!>>dig) for /f "eol=; tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15" %%a in (dig) do (set offset=%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n set offset=!offset:;=! echo !offset:-= ! ) del dmp del dig goto end :op2 for /f "tokens=*" %%x in (dmp) do (set unformatted=%%x set formatted=!unformatted: = ; ! echo !formatted!>>dig) for /f "eol=; tokens=2,3,4,5,6,7,8,9,10,11,12,13,14,15" %%a in (dig) do (set offset=%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m set offset=!offset:;=! echo !offset:-= ! ) del dmp del dig :end set byte= set offset=
|
|
|
10
|
Programación / Scripting / Batch para saber si un archivo comprimido ya fue extraido dentro de una carpeta
|
en: 15 Junio 2011, 05:58 am
|
Puede resultar util si como yo nunca borran los archivos comprimidos luego de extraerlos, a menos que se les llene un disco. Rardel.bat rem rardel a estrenar dir /b " %~1\* !query!*" >suspects for /f "delims=" %%y in (suspects ) do (echo LC " %1%%y" " %~2%%x" title Comparando " %1%%y" " %~2%%x"... call lc " %1%%y" " %~2%%x" )) type extracted.log :help echo Rardel junto con lcrar compara archivos rar y carpetas masivamente echo Rardel [ruta 1] [ruta 2] ruta 1 ruta de la carpeta que contiene los archivos rar a comparar ruta 2 ruta de la carpèta que contiene los archivos con los que se desea comparar :end
Lcrar.bat title Comparando %1 %2... if " %3"=="" set registro=extracted.log rem a revisar pero aparrentemente funcionando rem extrayendo if exist "y:\VMemSis\temp\rfc\nowchecking\" rd /s /q "y:\VMemSis\temp\rfc\nowchecking\" if exist "y:\VMemSis\temp\rfc" rd /s /q "y:\VMemSis\temp\rfc" md "y:\VMemSis\temp\rfc\muestras\originales" md "y:\VMemSis\temp\rfc\muestras\copias" "C:\Archivos de programa\WinRAR\RAR.exe" e -o+ %1 * "y:\VMemSis\temp\rfc\nowchecking\" >nulrem creando muestras rem originales comp /n=799999999999 "%%x" "%%~nx"32l<c>32l for /f "skip=2 tokens=5" %%y in (32l ) do set maxlines= %%y rem corregido revision de tags ID3 rem hay que separar casos set /a baseline= !maxlines!/2 set /a line1= !baseline!+1 set /a line2= !baseline!+2 set /a line3= !baseline!+3 set /a line4= !baseline!+4 set /a lastline=baseline+5 (findstr /n "." "%%x">"y:\VMemSis\temp\%%~nx"pl rem encontrar linea y volcar: el destino parece incorrecto a como de lugar rem la ruta de redireccion debe existir rem el tamaño del archivo no aumentaba porque el volcado estaba sobreescribiendo findstr "^^!baseline!: ^^!line1!: ^^!line2!: ^^!line3!: ^^!line4!: ^^!lastline!:" "y:\VMemSis\temp\% style="color: #448888;">%~nx"pl>>"y:\VMemSis\temp\rfc\muestras\originales\%%~nx.lc" del "y:\VMemSis\temp\ %%~nx"pl ) ) rem copias for /f "tokens=*" %%x in (tubo.rfc ) do (set file= %%x copy " !file!" "!file:~-8,5!"32l >nul echo 32l >>" !file:~-8,5!"32l comp /n=799999999999 "!file!" "!file:~-8,5!"32l<c>32l for /f "skip=2 tokens=5" %%y in (32l ) do set maxlines= %%y set /a baseline= !maxlines!/2 set /a line1= !baseline!+1 set /a line2= !baseline!+2 set /a line3= !baseline!+3 set /a line4= !baseline!+4 set /a lastline= !baseline!+5 (findstr /n "." "!file!">"y:\VMemSis\temp\"% style="color: #448888;">%~nx"pl findstr "^^!baseline!: ^^!line1!: ^^!line2!: ^^!line3!: ^^!line4!: ^^!lastline!:" "y:\VMemSis\temp\% style="color: #448888;">%~nx"pl>>"y:\VMemSis\temp\rfc\muestras\copias\%%~nx.lc" del "y:\VMemSis\temp\ %%~nx"pl ) ) rem hasta aqui va bien REM COMPARANDO MUESTRAS for %%x in ("y:\VMemSis\temp\rfc\muestras\originales\*" ) do ( set /a totalfiles= !totalfiles!+1 for %%y in ("y:\VMemSis\temp\rfc\muestras\copias\*" ) do if not !found!==1 (fc "%% style="color: #448888;">x" "%%y">nul ) ) rd /s /q "y:\VMemSis\temp\rfc" echo %interrorlevel%/ %totalfiles% set /a rate= %interrorlevel:~1%00/ %totalfiles% rem if %interrorlevel:~1%==%totalfiles% move %1 %3\%1 if !rate! geq 87 echo %1 %rate% %%>>%registro% rem casi casi 0k :help echo Lc comparara archivos en el disco duro con sus supuestas imagenes dentro de un archivo rar o zip echo La sintaxis de lc es la siguiente: echo Lc [/h] ^<imagen ^> ^<carpeta ^> ^<archivo de registro ^> echo /h muestra este texto echo ^<imagen ^> Ruta completa del archivo rar o zip que se desea comparar echo ^<carpeta ^> Ruta de la carpeta que contiene los archivos con los que se desea comparar echo ^<archivo de registro ^> Archivo que llevara el registro de los archivos comprimidos que coinciden ^(de no especificarse se usara el rachivo por defecto ^) :end
Es un tanto rudo pero funciona bien con menos de 10 archivos si son grandes dependiendo de la cantidad de memoria virtual disponible, lcrar no considera dos archivos iguales (aun). si alguno de los dos o ambos fueron modificados con metadata. Se que hay metodos mas sofisticados y estoy trabajando en ellos, asi como lograr sortear los tags. Si alguien considera que se puede mejorar, o sabe de alguna forma de ampliar la memoria virtual puede comentar.
|
|
|
|
|
|
|