• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Monky

Batch File

11 mensagens neste tópico

Boas Pessoal...

Ando a aprender a programar pequenos bat files para me automatizarem, digamos assim, varias tarefas...

Mas agora surgiu-me uma duvida/problema, andei a pesquizar na net e encontrei cenas que me permitiam fazer algo do genero que eu pretendia mas o codigo era exagerado para o efeito pretendido, por isso decidi criar este post, para voces me puderem ajudar a encontrar uma soluçao mais pequena....

O que pretendo fazer e o seguinte, um bat file que por exemplo encontre todos os ficeiros com a extenção *.rar, e que apague o que tem o nome programado por mim ou seja, trocando por miudos isto seria assim:

--> Procurar todos os ficheiros *.rar

--> Apagar ficheiro teste.rar

É isso que pretendia, alguem pode dar uma maozinha???

Cumps

Monky

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Há comandos para apagar logo o ficheiro que queres, não precisas necessariamente de procurar por todos os .rar antes.

Depende do sistema operativo, mas vê o "rm".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas...

Antes de mias obrigado pela tua resposta...

O, eu posso ver remover logo o ficheiro que quero, porque sei o nome dele e tudo, mas nao sei a sua localização, logo é preciso saber a sua localizaçao para o poder apagar ou estou errado?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

faz tempo q ñ mecho mais com bat, mas testei esse code aki e funciono:thumbsup:

@echo off

set /p ar=Qual arquivo deletar: 

erase dir /s C:\%ar%

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

BOas....

Antes d emais muito obrigado pela ajuda...

Vou so colocar o codigo de novo porque eu juntamente com o amigo Imoogi (especial abraço para ele) descobrimos um pequeno bug, ou pelo menos no vista o comando erase nao funciona, mas se trocarem o erase pelo del já funciona correctamente.

@echo off

set /p ar=Qual arquivo deletar: 

del dir /s C:\%ar%

Pronto...

Agora tenho outra duvida e para nao estar a fazer double post vou colocar aqui...

Eu queria fazer tipo uma barra de progresso de 0% a 100% conforme os comandos que ia fazendo a percentagem ia aumentando... Imaginando que nos comandos estava o seguinte:

ECHO @ECHO OFF >> "C:\teste.bat"
TIMEOUT 1
ECHO ECHO. >> "c:\teste.bat"
TIMEOUT 1
ECHO Olá Mundo >> "c:\teste.bat"
ECHO ECHO. >> "c:\teste.bat"
TIMEOUT 1
ECHO Tudo Bem? >> "c:\teste.bat"
ECHO ECHO. >> "c:\limp.bat"
TIMEOUT 1
ECHO Claro que sim >> "c:\teste.bat"

O que eu pretendia era que a percentagem fosse subindo conforme os comandos acima iam sendo feitos... Será isto possivel?

Cumps

Monky

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas Pessoal...

Depois de alguma procura, e de algum estudo em casa, consegui fazer o que pretendia da seguinte forma:

@ECHO OFF

CLS
title Loading
ECHO Loading - Please wait [1%%]
REM Comandos que queremos que o bat execute
Ping.exe localhost -n 5 >NUL (Esta linha é como se fosse um TimeOut de 5 segundos)

Depois disto é so copiar esse pedaço de codigo e colar em baixo e onde esta [1%%] colocar [2%%] e por ai adiante....

No fim é so colocar a mensagem de finalização do bat desta forma:

CLS
ECHO Success!
pause

Espero que sirva a alguem.... Pode haver varias maneira de fazer isto, mas eu descobri e eu modifiqueia a minha maneira e funciona o que acho ser o mais importante.

Cumps

Monky

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas Pessoal...

Aqui estou eu mais uma vez e com mias um pequena duvida, existe maneira de proibir a janela em que estou a correr o bat seja fechada?

Outra coisa, imaginemos este pedaço de codigo:

@echo off
:inicio
ECHO Olá Mundo! > "C:\teste.txt"
goto inicio

Isto vai criar um loop infinito, e cria em c: um ficheiro chamado teste.txt com o texto ola mundo, o que eu queria era que ele cada vez que voltasse ao :inicio me criasse um ficheiro diferente tipo:

1º volta no loop

-> criava o ficheiro em C: de nome teste.txt com o texto "Olá Mundo!"

2º volta no loop

-> criava o ficheiro de nome teste1.txt com o texto "Olá Mundo!"

3ª Volta no loop

-> criava o ficheiro de nome teste2.txt com o texto "Olá Mundo!"

e por ai fora, como e que faço isto?

Agradecia ajuda...

Cumps

Monky

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e ai Monky blz

p fazer o q vc quer da p usar um for

@echo off

for /l %%a in (1,1,10) do echo Olá Mundo > C:\teste%%a.txt

eu coloquei só 10 p ñ enche meu HD, mas é só mudar o 10 e colocar quantos vc quiser

uma outra forma de fazer uma porcentagem

@echo off
set c=1

:ini
if "%c%" == "100" (goto si)
echo loading %c%%%

::comando para executar
set /a c=%c%+1
ping localhost -n 1 > null
cls
goto ini

:si
echo deu certo
pause

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas Amigo...

Es sempre a minha salvação... LOL...

Funciona perfeitamente...

Cumps

Monky

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Noas Pessoal....

Mais uma vez ca estou eu... (GANDA MELGA... hihi)

@echo off

for /l %%a in (1,1,10) do echo Olá Mundo > C:\teste%%a.txt

Usando o codigo que o amigo Imoogi disponibilizou, eu queria que em vez de no txt aparecer apenas Ola mundo na primeira linha que aparecesse desta forma:

Linha1 - Ola Mundo

Linha2 - Hello World

Linha3 - 世界您好!

Linha4 - Hallo Welt!

E por ai fora...

Como é que posso fazer isto?

Cumps

Monky

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ai Monky, teste esse :D

@echo off


for /l %%a in (1,1,10) do (
echo  Alo mundo
echo Hello world
echo Ate mais
echo Bem vindo
echo E por ai fora
) >> C:\teste%%a.txt

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora