Pesquisar

17 de out. de 2011

Conversor de .EXE para .BAT

@echo off
set cd2=%cd%
title Exe_To_Bat_Converter
setlocal enabledelayedexpansion
:init
set n=0
echo Arraste o .exe para este local e pressione enter!
set /p arquivo=
set arquivo=%arquivo:"=%
if exist "%arquivo%" goto main
msg * Arquivo não encontrado!
goto init
:main
call :name %arquivo%
cd %temp%
echo Aguarde...
tasklist|find "cmd">list
for /f "tokens=2" %%a in (list) do (
set /a n=!n!+1
)
dir /b /A:D *.tmp>pasta
cd %cd2%
start /min "" "%arquivo%"
taskkill -f -im "%result%"|find "ERRO"
if %errorlevel%==0 ( msg * Batch muito pequeno!&exit)
tasklist|find "cmd">list
for /f "tokens=2 skip=%n% " %%a in (list) do (
taskkill /pid %%a -f >nul
)
cd %temp%
:verificar
for /f "tokens=* " %%a in ('dir /b /A:D *.tmp') do (
call :ver %%a
)
msg.exe * Ocorreu um erro. Aguarde...
goto verificar
:sair
msg.exe * Processo concluido.
cd %cd2%
del list
exit
:name
set nome=%*
set result=%nome:~-1%%result%
set nome=%nome:~,-1%
if not "%nome:~-1%"=="\" call :name %nome%
goto fim
:ver
set a=%*
find "%a%" pasta>nul
if %errorlevel%==1 (cd %a%&copy /-y * "%cd2%"&goto sair)
:fim

Calculadora de equações simples

colocar no bloco de notas este codigo e salvar com o nome que voce quiser e no final colocar .bat depois é só executar


@echo off
:1
cls
echo Digite a equação Ex: (12-6)*2/10+4/7-13
set /p valor= :
call :calc "%valor%"
pause >nul
goto 1
:calc
setlocal
set "vbs=%temp%\tmp.vbs"
>"%vbs%" echo On Error Resume Next : WScript.Echo Eval(WScript.Arguments(0))
cscript //nologo "%vbs%" "%~1"
del "%vbs%"
exit /b
.

Script para alteracao de ip,netmask,gateway e dns

@ECHO OFF

REM Script para alteracao de ip,netmask,gateway e dns

:inicio

cls

echo SCRIPT PARA ALTERACAO DE IP

echo Que tipo de configuracao de IP deseja fazer:

echo 1- Manual
echo 2- Automatica
echo 3- Sair

set/p opcao=

cls

if "%opcao%" EQU "1" (goto manual)
if "%opcao%" EQU "2" (goto automatico)
if "%opcao%" EQU "3" (goto sair)

:manual

echo Qual numero de ip que deseja colocar?

set/p numeroip=

cls

echo Qual a netmask?

set/p mascara=

cls

echo Qual o Gateway?

set/p gateway=

cls

echo Qual DNS?

set/p dns=

cls

netsh interface ip set address name="Local Area Connection" static %numeroip% %mascara% %gateway% 0
cls
netsh interface ip set dns name="Local Area Connection" static %dns%
cls

:automatico

netsh interface ip set address name="Local Area Connection" dhcp
cls

goto inicio

:sair
exit.

16 de out. de 2011

Calculadora 4.0 em Batch (.bat)

Coloque no bloco de notas e salve como: calculadora4.bat


@echo off
echo Somar
echo.
set /p numero1= Informe um numero:
echo %numero1%
set /p numero2= Informe o 2 numero:
echo %numero2%
set /a valor=numero1+numero2
echo.
echo O resultado da soma e %valor%
echo.
echo Subtrair
echo.
set /p numero1= Informe um numero:
echo %numero1%
set /p numero2= Informe o 2 numero:
echo %numero2%
set /a valor=numero1-numero2
echo.
echo O resultado da subtracao e %valor%
echo.
echo Multiplicar
echo.
set /p numero1= Informe um numero:
echo %numero1%
set /p numero2= Informe o 2 numero:
echo %numero2%
set /a valor=numero1*numero2
echo.
echo O resultado da multiplicacao e %valor%
echo.
echo Dividir
echo.
set /p numero1= Informe um numero:
echo %numero1%
set /p numero2= Informe o 2 numero:
echo %numero2%
set /a valor=numero1/numero2
echo.
echo O resultado da divisao e %valor%
echo.
pause

Calculadora 3.0 em Batch (.bat)

Copiar no bloco de notas e salvar como calculadora3.bat


@echo off
:A
title Calculadora
cls
Color 0A
echo Digite 1 Para Adicao, 2 Para Subtracao, 3 Para Multiplicacao, 4 Para Divisao.
set /p cm=
if %cm%==1 goto adi
if %cm%==2 goto sub
if %cm%==3 goto mul
if %cm%==4 goto div
cls
goto A
cls
:adi
cls
title Adicao
echo Coloque a 1 Parcela:
set/p par1=
cls
echo Coloque a 2 Parcela:
set /p par2=
cls
set /a par3=%par1%+%par2%
echo Resultado: %par3%
echo.
echo Pressione Qualquer Tecla para Fazer outra conta. . .
pause >nul
goto A
exit
:sub
cls
title Subtracao
echo Coloque o Diminuendo:
set/p par1=
cls
echo Coloque o Subtraendo:
set /p par2=
cls
set /a par3=%par1%-%par2%
echo Resultado: %par3%
echo.
echo Pressione Qualquer Tecla para Fazer outra conta. . .
pause >nul
goto A
exit
:mul
cls
title Multiplicacao
echo Coloque o Multiplicando:
set/p par1=
cls
echo Coloque o Multiplicador:
set /p par2=
cls
set /a par3=%par1%*%par2%
echo Resultado: %par3%
echo.
echo Pressione Qualquer Tecla para Fazer outra conta. . .
pause >nul
goto A
exit
cls
:div
cls
title Divisao
echo Coloque o Dividendo:
set/p par1=
cls
echo Coloque o Divisor:
set /p par2=
cls
set /a par3=%par1%/%par2%
echo Resultado: %par3%
echo.
echo Pressione Qualquer Tecla para Fazer outra conta. . .
pause >nul
goto A
exit

Calculadora 2.0 em Batch (.bat)

Você deve copiar este código no bloco de notas e depois salvar como calculadora.bat

@echo off
setlocal enabledelayedexpansion
:inic
cls
echo Calculadora.BAT
echo ----------------------------------------------------------
echo * Expressao aritmetica nao deve conter espaco em branco.
echo * Use ponto para separar inteiro/decimal (virgula nao).
echo * Operadores aritms: +-*/ Exemplo: 123.55*868.33
echo ----------------------------------------------------------
echo.
echo Terminar: X + ENTER
set /p "expr=Digite expressao: "
set r1=!expr:~0,1!
if %r1%==x goto fim
if %r1%==X goto fim

:Tamanho da expressao
set exprX=%expr%x
::acima adicionei 1 digito, depois desconto. Se expr="" bat entra em loop.

:TamanhoLoop
if not "!exprX:~%TamanhoExpr%,1!"=="" (
set /a TamanhoExpr += 1
goto TamanhoLoop
)

set /a TamanhoExpr=%TamanhoExpr%-1
set /a cont=-1
set sinal=indef
set def=nao
set op1=xxx
set PosicaoSinal=0

:calc
::achando posicao do sinal aritm(+-*/)
set /a cont=%cont%+1
if %cont% == %tam% goto prox
set dig=!expr:~%cont%,1!

if %dig%==+ if %sinal%==indef (
set sinal=adic
goto prox
)
if %dig%==- if %sinal%==indef (
set sinal=subtr
set def=sim
)
if %dig%==* if %sinal%==indef (
set sinal=mult
set def=sim
)
if %dig%==/ if %sinal%==indef (
set sinal=div
set def=sim
)
if %def%==sim goto prox
goto calc
goto prox

:prox
::op1 1a. parte da expressao, op2 2a. parte
::ps posicao do sinal, p2p posicao inicio 2a parte da expressao,

set /a ps=%cont%+1
set /a pss=%ps%-1
set /a tam1=%cont%
set /a tam2=%TamanhoExpr%-%tam1%-1
set op1=!expr:~0,%cont%!
set op2=!expr:~%ps%,%tam2%!
set opx=!expr:~%pss%,1!
set /a p1=0
set /a cpt=0

:remov1
::removendo ponto decimal
set /a cpt=%cpt%+1
if %cpt%==%tam1% goto prox2
set sub1=!op1:~%cpt%,1!
if %sub1%==. goto prox2
goto remov1

:prox2
set /a p1=%cpt%+1
set /a p2=0
set /a cpt=0

:remov2
set /a cpt=%cpt%+1
if %cpt%==%tam2% goto prox3
set sub2=!op2:~%cpt%,1!
if %sub2%==. goto prox3
goto remov2

:prox3
set /a p2=%cpt%+1
set string1=%op1000
set string2=%op2000
set /a casas1=2
set /a casas2=2
if %sinal%==mult (
set /a casas1=1
set /a casas2=1
)

if %sinal%==div (
set /a casas1=1
set /a casas2=1
)

if p1==%tam1% goto prox4
set string1=!string1:.=!

:prox4
if p2==%tam2% goto x1000
set string2=!string2:.=!

:x1000
set /a str1=%p1%+%casas1%
set string1=!string1:~0,%str1%!
set /a str2=%p2%+%casas2%
set string2=!string2:~0,%str2%!
set /a virg1=1
set /a virg2=1
::prevenindo No.Octal (0500 p.ex)
:octal1
set oc=!string1:~0,1!
if %oc%==0 (
set string1=!string1:~1,15!
set /a virg1=%virg1%+1
goto octal1
) else goto octal2

:octal2
set oc=!string2:~0,1!
if %oc%==0 (
set string2=!string2:~1,15!
set /a virg2=%virg2%+1
goto octal2
) else goto prox5

:prox5
set /a val1=%string1%
set /a val2=%string2%
if %sinal%==adic goto adic
if %sinal%==subtr goto subtr
if %sinal%==mult goto mult
if %sinal%==div goto div

:adic
set /a result=%val1%+%val2%
goto ponto

:subtr
set /a result=%val1%-%val2%
goto ponto

:mult
set /a y1=%val1%/100
set /a y2=%val2%/100
set /a prov1=%y1%*%y2%
set /a w1=%y1%*100
set /a w2=%y2%*100
set /a z1=%val1%-%w1%
set /a z2=%val2%-%w2%
set /a r1=%z1%*%w2%
set /a r2=%z2%*%w1%
set /a prov2=%r1%+%r2%
set /a rest=0
if not %prov2%==0 set rest=!prov2:~1,3!
if not %prov2%==0 set /a rest=%rest%*10
)
set /a prov2=%prov2%/10000
set /a prov3=%z1%*%z2%
set /a prov3=%prov3%+%rest%
set /a resultado=%prov1%+%prov2%
set prov3=!prov3:~0,3!
set resultado=%resultado%.%prov3%
goto resul

:div
set oc=%val1
set /a val1=%oc%
set /a result=%val1%/%val2%
if %result% gtr 9 goto ponto
set fu=0.0
if %result%==0 set fu=0.00
set /a val1=%val1%*100
set /a result=%val1%/%val2%
set resultado=%fu%%result%
goto resul

:ponto
set result=%result%

:virgLoop
if not "!result:~%TamanhoRes%,1!"=="" (
set /a TamanhoRes += 1
goto virgLoop
)

set /a cpt=%TamanhoRes%-3
if %sinal%==div set /a cpt=%cpt%+1
set /a oc=%cpt%
set resultado=!result:~0,%cpt%!.!result:~%oc%,3!

:resul
set fu=!resultado:~0,1!
if %fu%==. set resultado=0%resultado%
set /a result=resultado
if %result% gtr 2146999999 set resultado=%resultado%... ERRO: numero muito grande...
echo.
echo Resultado: %resultado%
echo.
echo.
set /p "oc= Pressione qualquer tecla..."
:rele
set expr=
set TamanhoExpr=
set cont=
set sinal=
set def=
set op1=
set op2=
set opx=
set PosicaoSinal=
set dig=
set ps=
set pss=
set tam1=
set tam2=
set p1=
set p2=
set cpt=
set sub1=
set sub2=
set string1=
set string2=
set casas1=
set casas2=
set str1=
set str2=
set virg1=
set virg2=
set oc=
set result=
set resultado=
set y1=
set y2=
set prov1=
set prov2=
set prov3=
set w1=
set w2=
set z1=
set z2=
set r1=
set r2=
set rest=
set val1=
set val2=
goto inic
:fim
::--------------------------------