Ir ao conteúdo
  • Cadastre-se

Bat Criar uma pasta na área de trabalho para copiar arquivos


Posts recomendados

Bom dia Pessoal.

 

Tenho muito pouca experiência em programação mas estou começando  a estudar.

 

Agora o meu intuito, mas já tentei criar o código e sem sucesso, seria fazer uma Bat que pudesse criar uma pasta na área de trabalho com o nome fixo por exemplo de Arquivos_loja , copiar 3 arquivos com extensão diferentes ( Texto.txt, Data.jpeg e  loja.xls ), que estão dentro da pasta c:\backup_loja01.( o nome dessa pasta pode variar conforma explicação abaixo )

 

O grande desafio, é que esse arquivo BAT precisa entender que, sempre esses 3 arquivos ( Texto.txt, Data.jpeg e  loja.xls ) que serão copiados para a pasta que foi criada na área de trabalho ( ARQUIVOS_LOJA )  irão estar sempre dentro da mesma pasta que ele, ou seja a própria BAT,

 

Exemplificando, existe uma pasta no c:\ que pode variar de nome por loja ou por que o usuario  queira renomear  ( exemplo 1 acima - c:\backup_loja01, mas poderia ser qualquer outro nome ), e, para copiar esse 3 arquivos ( Texto.txt, Data.jpeg e  loja.xls que sempre estarão dentro dela), essa BAT seria jogada manualmente  dentro desse diretório  ( exemplo 1 acima - c:\backup_loja01, mas poderia ser qualquer outro nome ), ela entenderia que esses arquivos estarão dentro do mesmo diretório  da própria BAT, iria fazer a cópia para pasta criada na área de trabalho ( essa sim teria o mesmo nome sempre ( Arquivos_loja ).

 

Ufa! Até difícil de explicar.

 

Obrigado !

Link para o comentário
Compartilhar em outros sites

@emersonpaulino Caso esses arquivos loja.xls , Data.jpeg e Texto.txt já existam no destino eles devem ser substituidos ou não?

 

Copiar da pasta onde está o batch é o padrão basta não especificar um caminho que ele vai procurar pelo arquivo na mesma pasta onde está o bat.

 

por exemplo: copy Texto.txt "%userprofile%\desktop\Arquivos_Loja" 

 

Isso vai copiar o arquivo Texto.txt da mesma pasta onde está o bat para área de trabalho.

Link para o comentário
Compartilhar em outros sites

@emersonpaulino Isso, xcopy /y para substituir os arquivos no destino que já existem.

 

Aqui vai um exemplo, coloquei uma função para descobrir o local da área de trabalho pois ao invês do perfil do usuário ela também pode estar no onedrive dependendo das opções que o usuário escolheu durante a instalação:

 

@echo off

for /f "delims=" %%a in ('"powershell [Environment]::GetFolderPath('Desktop')"') do set "Desktop=%%a"

set Destino=%Desktop%\Arquivos_loja
 
if not exist "%Destino%" md "%Destino%"
for %%a in (Texto.txt, Data.jpeg, loja.xls) do xcopy /y /i "%%a" "%Destino%"


 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

4 horas atrás, emersonpaulino disse:

Sem pedir muito, estou querendo incrementar com uma barra de progresso colorida que também mostra um percentual. Você teria alguma ideia? Já rodei essa internet toda e é difícil achar esse código.

 

Ninguém faz porque fica muito lento por causa dos cálculos necessários (interpolação linear) para mostrar a barra.

e em batch fica tudo mais lento do que o de costume, experimente esse que eu fiz só para mostrar a barra para você ver a velocidade.

@echo off

call :_main
goto :eof

:: Função principal 
:_main
    :: laço de repetição de 0 a 60
    for /L %%a in (0,1,60) do (
        :: Chama a função de barra
        call :barra_simples #,%%a, Copiando!
    )
    pause
exit /b 0

:: Função de barra simples
:: Para usar passe o mostrador da barra no primeiro parâmetro depois o tamanho da barra e por ultimo uma mensagem
:barra_simples
    :: A variável barra vai guardar o conteúdo da barra 
    set barra=
    :: Utilizado no loop
    set /a contador=0
    :_loopBarra
        :: Monta a barra de progresso
        set "barra=%barra%%~1"
        if %contador% LSS %~2 (
            set /a contador+=1
            goto :_loopBarra
        )
    :: Mostra a barra!
    echo [%barra%]%~3
exit /b 0

Se eu achar a versão final eu posto depois.

 

Se você quiser tentar fazer não e tão complicado assim, é só seguir os passos abaixo

  1. Declare o tamanho da barra de progresso com um valor fixo.
  2. Conte quantos arquivos tem na pasta que você vai copia-los.
  3. Declare uma variável iniciada com 0 para contar quantos arquivos você copiou.
  4. Copie os arquivos e vá contando quantidade de arquivos copiados.
  5. Interpole os valores da variável que você está usando para contar os arquivos com a quantidade de arquivos e o tamanho da barra.
  6. Passe o valor interpolado para a barra.
  7. Repita o passo 4 em diante.

Eu estou falando de interpolar valores, mas eu acho que o nome da equação no brasil e equação de 2 grau.

Da uma pesquisadinha aí 🤭

Ou qualquer coisa @ricardo_br tá aí pra salva a pátria.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!