none
Identificar hora (.BAT) RRS feed

  • Pergunta

  • Esse arquivo que faço o backup pelo agendador é realizado de duas em duas horas até uma determinada hora, tem como incrementar neste bat, quando for 20:00 que é a ultima vez que ele é executado alem de fazer o backup normal, copiar para outra unidade.

    Script:

    @echo off
    SET ARQUIVO=G:\PastaGeral\arquivo.doc
    SET PASTA=G:\Backup\
    
    ::Pega partes das datas
    for %%A in (%date%) do (set dt=%%A)
    set mes=%dt:~0,2%
    set dia=%dt:~3,2%
    set ano=%dt:~6,4%
    
    
    ::Verifica se pasta existe, cria se não existe
    IF NOT EXIST %PASTA%%ano% MD %PASTA%%ano%
    
    ::Copia arquivo
    COPY %ARQUIVO% "%PASTA%%ano%\%mes%_%dia%.doc" /Y

    tópico original:

    Backup

    http://social.technet.microsoft.com/Forums/pt-BR/scriptadminpt/thread/5d69196b-5f04-414d-8ad3-a8b9ed8527a4

    • Dividir Fábio JrModerator segunda-feira, 19 de março de 2012 12:07 Pergunta aberta em tópico respondido
    • Editado Fábio JrModerator segunda-feira, 19 de março de 2012 12:09 Add Links, scripts
    domingo, 18 de março de 2012 23:33

Respostas

  • Luiz,

    Adicionei a variavel PASTA_20 que é o local para onde deve ser copiado o arquivo quando for 20:00.

    Verifique o formato da hora que deve ser 24 horas (8 da noite = 20 horas).

    @echo off
    SET ARQUIVO=G:\PastaGeral\arquivo.doc
    SET PASTA=G:\Backup\
    SET PASTA_20=X:\Backup\
    
    ::Pega partes das datas
    for %%A in (%date%) do (set dt=%%A)
    set mes=%dt:~0,2%
    set dia=%dt:~3,2%
    set ano=%dt:~6,4%
    
    
    ::Verifica se pasta existe, cria se não existe
    IF NOT EXIST %PASTA%%ano% MD %PASTA%%ano%
    
    ::Copia arquivo
    COPY %ARQUIVO% "%PASTA%%ano%\%mes%_%dia%.doc" /Y
    
    ::Backup das 20:00
    set hr=%TIME:~0,2%
    
    IF "%hr%"=="20" COPY %ARQUIVO% "%PASTA_20%%ano%\%mes%_%dia%.doc" /Y

    Observação:

    O comando abaixo pega os dois primeiros caracteres do conteudo da variavel TIME.

    %TIME:~0,2%



    Fábio de Paula Junior

    segunda-feira, 19 de março de 2012 12:13
    Moderador

Todas as Respostas

  • Luiz,

    Adicionei a variavel PASTA_20 que é o local para onde deve ser copiado o arquivo quando for 20:00.

    Verifique o formato da hora que deve ser 24 horas (8 da noite = 20 horas).

    @echo off
    SET ARQUIVO=G:\PastaGeral\arquivo.doc
    SET PASTA=G:\Backup\
    SET PASTA_20=X:\Backup\
    
    ::Pega partes das datas
    for %%A in (%date%) do (set dt=%%A)
    set mes=%dt:~0,2%
    set dia=%dt:~3,2%
    set ano=%dt:~6,4%
    
    
    ::Verifica se pasta existe, cria se não existe
    IF NOT EXIST %PASTA%%ano% MD %PASTA%%ano%
    
    ::Copia arquivo
    COPY %ARQUIVO% "%PASTA%%ano%\%mes%_%dia%.doc" /Y
    
    ::Backup das 20:00
    set hr=%TIME:~0,2%
    
    IF "%hr%"=="20" COPY %ARQUIVO% "%PASTA_20%%ano%\%mes%_%dia%.doc" /Y

    Observação:

    O comando abaixo pega os dois primeiros caracteres do conteudo da variavel TIME.

    %TIME:~0,2%



    Fábio de Paula Junior

    segunda-feira, 19 de março de 2012 12:13
    Moderador
  • O caminho que quero copiar é uma pasta oculta em outro pc da rede, tem como fazer isso, sem ter que mapear a undiade?
    quarta-feira, 21 de março de 2012 11:37
  • Pode utilizar o caminho UNC

    \\computador_remoto\C$\pastaocuta


    Fábio de Paula Junior

    quarta-feira, 21 de março de 2012 12:13
    Moderador
  • Funcionou, mais uma vez obrigado!
    quinta-feira, 22 de março de 2012 12:31