none
Scripts com Mensagem RRS feed

  • Pergunta

  • Venho aqui através deste forum tirar uma dúvida sobre rodas varios comandos em um script somente  no caso, em .BAT.

    Exemplo:

    FOR /d %A in ("C:\Users\nome do usuario\Desktop\MODELO\A\*") DO xcopy "C:\Users\nome do usuario\Desktop\Nova Pasta\*" "%A" /E /K /O 
    FOR /d %A in ("C:\Users\nome do usuario\Desktop\MODELO\B\*") DO xcopy "C:\Users\nome do usuario\Desktop\Nova Pasta\*" "%A" /E /K /O 

    Desejo colocar de A a Z e colocar pastas em estururas montadas, sendo que desejo fazer isso somente em 1 bat para rodar de uma vez, alguem poderia me ajudar?

    obrigado desde já.

    quinta-feira, 21 de janeiro de 2021 12:17

Respostas

  • No caso fiz esses cenários dos vídeos:

    Video 01

    Vídeo 02

    @echo off
    
    Set DestinoBase=C:\Users\usuario\Desktop\MODELO CLIENTES GR
    Set Fonte=C:\Users\usuario\Desktop\Nova Pasta
    
    For %%a in (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) do for /D %%b in ("%DestinoBase%\%%a\*") do xcopy /e /i /y /k /f /o "%Fonte%\*" "%%b"
    


    R. Bohner

    • Marcado como Resposta Nechio Neves sexta-feira, 22 de janeiro de 2021 15:04
    sexta-feira, 22 de janeiro de 2021 14:01

Todas as Respostas

  • Olá amigo,

    Se for o que eu esto pensando é bem mais simples do que você colocou ai.

    robocopy "Fonte" "Destino" /e

    Ou seja:

    robocopy "C:\Users\nome do usuario\Desktop\MODELO" "C:\Users\nome do usuario\Desktop\Nova Pasta" /e
    Porque você colocou "script com mensagem" no título do post eu não entendi...?


    R. Bohner

    quinta-feira, 21 de janeiro de 2021 13:36
  • dando exemplo:

    ::::::::::::::::::::::::::::::::::::::::::::::::::::::

    :: SCRIPT DESENVOLVIDO :::
    :: EMAIL: :::
    :: DATA DE CRIACAO:::
    :: OBJETIVO: IMPLANTAR PASTAS NOVAS EM ESTRUTURAS MONTADAS:::
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::

    FOR /d %A in ("C:\Users\nome do usuario\Desktop\MODELO\A\*") DO xcopy "C:\Users\nome do usuario\Desktop\Nova Pasta\*" "%A" /E /K /O 
    FOR /d %A in ("C:\Users\nome do usuario\Desktop\MODELO\B\*") DO xcopy "C:\Users\nome do usuario\Desktop\Nova Pasta\*" "%A" /E /K /O 

    eu queria desta forma, rodar cada for assim que o outro estiver terminado.

    E EU ACOMPANHAR COM O PROMPT ABERTO

    quinta-feira, 21 de janeiro de 2021 13:47
  • Olá amigo,

    Veja se é isso: Copiar_A-Z.gif

    @echo off
    
    Set Fonte=%userprofile%\Desktop\MODELO
    Set Destino=%userprofile%\desktop\Nova Pasta
    
    For %%a in (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) do xcopy /e /i /y /k /f /o "%Fonte%\%%a\*" "%Destino%\%%a" 
    


    R. Bohner

    quinta-feira, 21 de janeiro de 2021 14:56
  • nao e isso.

    o que acontece, eu ja tenho a esturura pronta , esse comando funciona para mim,

    so quero que ele rode automaticamente, quando acabar um comando rodar outro.

    eu so quero que os comandos rodem de uma vez so, o comando esta funcionando.

    quinta-feira, 21 de janeiro de 2021 15:11
  • Sim isso é o padrão em arquivos bat ele vai rodando os comandos em sequencia.

    Basta colocar um em cada linha e eles vão sendo executandos 1 atraz do outro ou por qual razão não é executado o próximo comando no seu caso?


    R. Bohner

    quinta-feira, 21 de janeiro de 2021 15:21
  • cd/

    FOR /d %A in ("C:\Users\usuario\Desktop\MODELO CLIENTES GR\A\*") DO xcopy "C:\Users\usuario\Desktop\Nova Pasta\*" "%A" /E /K /O 

    FOR /d %A in ("C:\Users\usuario\Desktop\MODELO CLIENTES GR\B\*") DO xcopy "C:\Users\usuario\Desktop\Nova Pasta\*" "%A" /E /K /O 

    FOR /d %A in ("C:\Users\usuario\Desktop\MODELO CLIENTES GR\C\*") DO xcopy "C:\Users\usuario\Desktop\Nova Pasta\*" "%A" /E /K /O


    @pause

    assim ele nao vai, ele fecha a tela e nao vai, agora quando eu abro o prompt e copio um comando por vez ele roda.

    quinta-feira, 21 de janeiro de 2021 15:27
  • Dentro do arquivo bat você tem que usar a variável de reposição com 2 sinais de porcentagem ao invêz de um por exemplo %%A ou invês de %A

    R. Bohner

    quinta-feira, 21 de janeiro de 2021 15:30
  • dessa forma como eu faria de A a Z

    FOR /d %A in ("C:\Users\usuario\Desktop\MODELO CLIENTES GR\A\*") DO xcopy "C:\Users\usuario\Desktop\Nova Pasta\*" "%A" /E /K /O 

    FOR /d %A in ("C:\Users\usuario\Desktop\MODELO CLIENTES GR\B\*") DO xcopy "C:\Users\usuario\Desktop\Nova Pasta\*" "%A" /E /K /O 

    FOR /d %A in ("C:\Users\usuario\Desktop\MODELO CLIENTES GR\C\*") DO xcopy "C:\Users\usuario\Desktop\Nova Pasta\*" "%A" /E /K /O

    ?

    quinta-feira, 21 de janeiro de 2021 15:37
  • Algo assim:

    FOR /d %%A in ("C:\Users\usuario\Desktop\MODELO CLIENTES GR\A\*") DO xcopy "C:\Users\usuario\Desktop\Nova Pasta\*" "%%A" /E /K /O 
    
    FOR /d %%A in ("C:\Users\usuario\Desktop\MODELO CLIENTES GR\B\*") DO xcopy "C:\Users\usuario\Desktop\Nova Pasta\*" "%%A" /E /K /O 
    
    FOR /d %%A in ("C:\Users\usuario\Desktop\MODELO CLIENTES GR\C\*") DO xcopy "C:\Users\usuario\Desktop\Nova Pasta\*" "%%A" /E /K /O

    Também você tem que executar seu bat como administrador porque a opção: "xcopy /o" requer privilégios de administrador...


    R. Bohner


    quinta-feira, 21 de janeiro de 2021 15:40
  • dessa forma eu ja sei,

    estou falando dessa forma que vc indicou:

    @echo off
    
    Set Fonte=%userprofile%\Desktop\MODELO
    Set Destino=%userprofile%\desktop\Nova Pasta
    
    For %%a in (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) do xcopy /e /i /y /k /f /o "%Fonte%\%%a\*" "%Destino%\%%a"

    quinta-feira, 21 de janeiro de 2021 15:42
  • Só colocar o caminho para os arquivos originais em Fonte e o local para onde você quer copiar em destino.

    @echo off
    
    Set Fonte=C:\Users\usuario\Desktop\MODELO CLIENTES GR
    Set Destino=C:\Users\usuario\Desktop\Nova Pasta
    
    For %%a in (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) do xcopy /e /i /y /k /f /o "%Fonte%\%%a\*" "%Destino%\%%a" 
    pause

    Ai ele vai criar aquela estrutura de A,B,C,D dentro da pasta "Nova Pasta"




    R. Bohner

    quinta-feira, 21 de janeiro de 2021 15:48
  • nao seria isso , o meu comando vou lhe dar um exemplo.

    pasta mae - modelo 

    subpasta - A

    dentro da pasta a tem as empresas da letra A,  dentro de cada empresa, tem pastas de 1. a 19.

    dentro dessas pastas que irei colocar a nova estrutura de pastas em massa.

    a mesma coisa de B em diante,

    esse meu comando funciona, porém queria rodar em uma linha somente para nao ter trabalho de fazer de A a Z.

    quinta-feira, 21 de janeiro de 2021 15:51
  • Acho que agora entendi, vou fazer uns testes e já volto...

    R. Bohner

    quinta-feira, 21 de janeiro de 2021 16:02
  • No caso você quer copiar a estrutura que está em "Nova Pasta" para cada empresa em A, B, C, D, E e assim adiante correto?


    R. Bohner


    sexta-feira, 22 de janeiro de 2021 02:41
  • isso ai .

    eu tenho uma estrutura de A a Z.

    Dentro de A

    tem varias empresas da letra A

    Dentro de cada empresa, tem pastas de 1 a 19

    dentro de cada pasta vai ser inserido no caso do 1 a 19 pastas com as pastas criadas na NOVA PASTA.

    Exemplo: quero inserir nas pastas de 1 a 19, a pasta 2021 .

    sexta-feira, 22 de janeiro de 2021 12:16
  • No caso fiz esses cenários dos vídeos:

    Video 01

    Vídeo 02

    @echo off
    
    Set DestinoBase=C:\Users\usuario\Desktop\MODELO CLIENTES GR
    Set Fonte=C:\Users\usuario\Desktop\Nova Pasta
    
    For %%a in (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) do for /D %%b in ("%DestinoBase%\%%a\*") do xcopy /e /i /y /k /f /o "%Fonte%\*" "%%b"
    


    R. Bohner

    • Marcado como Resposta Nechio Neves sexta-feira, 22 de janeiro de 2021 15:04
    sexta-feira, 22 de janeiro de 2021 14:01
  • Muito obrigado meu caro me ajudou bastante.

    sexta-feira, 22 de janeiro de 2021 15:04
  • como eu colocaria com mensagem?

    :::::::::::::::::::::::::::::::::::::::::::::::::::::

    :: SCRIPT DESENVOLVIDO :::
    :: EMAIL: :::
    :: DATA DE CRIACAO:::
    :: OBJETIVO: IMPLANTAR PASTAS NOVAS EM ESTRUTURAS MONTADAS:::
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::

    pois quando eu coloco ele não roda.

    terça-feira, 26 de janeiro de 2021 14:14
  • As mensagens que você fala são a saída do xcopy ou você quer colocar alguma mensagem personalizada?

    R. Bohner

    terça-feira, 26 de janeiro de 2021 14:19
  • mensagem personalizada
    terça-feira, 26 de janeiro de 2021 14:26
  • Algo parecido com isso:

    @echo off
    
    Set DestinoBase=C:\Users\usuario\Desktop\MODELO CLIENTES GR
    Set Fonte=C:\Users\usuario\Desktop\Nova Pasta
    
    For %%a in (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) do for /D %%b in ("%DestinoBase%\%%a\*") do (
    echo Copiando Arquivos para %%b
    xcopy /e /i /y /k /f /o "%Fonte%\*" "%%b" > nul
    )


    R. Bohner

    terça-feira, 26 de janeiro de 2021 14:30
  • Outra opção:

    @echo off
    chcp 1252 > nul
    
    Set DestinoBase=C:\Users\usuario\Desktop\MODELO CLIENTES GR
    Set Fonte=C:\Users\usuario\Desktop\Nova Pasta
    
    echo.
    echo  Iniciando processo de cópia...
    echo.
    
    For %%a in (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) do for /D %%b in ("%DestinoBase%\%%a\*") do (
    echo  Copiando Arquivos para %%~nxb
    xcopy /e /i /y /k /f /o "%Fonte%\*" "%%b" > nul
    )
    echo.
    echo  O Processo de Cópia foi Finalizado...
    echo.
    pause

    Ficaria algo assim:


    R. Bohner

    terça-feira, 26 de janeiro de 2021 15:20
  • muito obrigado.
    terça-feira, 26 de janeiro de 2021 15:45
  • meu caro,

    será que você conseguiria me ajudar nesse quesito?

    https://social.technet.microsoft.com/Forums/pt-BR/0fa099b3-7907-4e56-ada0-fe55a54ffebe/desinstalar-todos-os-offices-via-script-silenciosamente?forum=scriptadminpt

    terça-feira, 26 de janeiro de 2021 15:49