none
Como renomear, mover, copiar, deletar *.mp3? RRS feed

  • Pergunta

  • Pessoal,

     

    Estou precisando de um script para mover, copiar ou deletar todos os arquivos *.mp3 uma pasta X.

    Tem que ser procurando as extensões, não pode ser pelos nomes pois não da pra saber os nomes.

     

    Outro script que não consegui achar é renomear um arquivo "não-sei-o-nome.txt" para "arquivo.txt".

    Achei um que renomei de "xxx.txt" para "yyy.txt".

    No caso, não sei como vai ser o nome do arquivo, mas quero poder definir o nome.

    Em bat uso "REN *.txt DC1.txt".

     

    Obrigado.

     

    Jensen Clayton

    sexta-feira, 21 de setembro de 2007 20:32

Respostas

  • Laerte,

     

    Valeu pela dica, aquele script é bem mais complexo do que precisava.

    Achei um que deu certinho pro que queria.

     

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.DeleteFile("G:\Volume\Logs\*.log")

     

    Apago todos os arquivos de log da pasta de uma vez só e não apago os outros arquivos que estiverem lá.

    Se colocar *.* vai tudo.

     

     

    Agora não encontrei um que renomeia *.log para meu.log.

    Na minha pasta "G:\Volume\Logs" aparece o log sempre com um incremento (log001.log, log002.log, ...).

    Então tem que ser uma função que pegue o arquivos .log e copie com o nome que eu quero.

     

    Como a variação vai de 1 até 10, coloquei um "If" pra cada arquivo.

     

    Problema resolvido em parte... o ideal seria usar um bem simples como o de apagar.

     

    Quem tiver mais uma ajuda, posta aqui por favor.

    Qualquer dica é uma boa caminhada.

     

    Valeu.

     

    Jensen Clayton

    sábado, 22 de setembro de 2007 03:23
  • Jensen, só uma outra pergunta vai sempre existir somente um arquivo nessa pasta porque se for esse script aqui acho que te atende:

     

    strComputer = "."

    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile WHERE path = '\\local da pasta onde está o arquivo' and extension = 'log'")
    for each objfile in colfiles
       objfile.rename("servidor.log")
    next

     

    ou em powershell

     

    get-childitem caminho da pasta onde está o arquivo |where {$_.extension -eq ".log"}|foreach {rename-item $_.fullname servidor.log}

     

    salva essa linha como .ps1 e executa ela no prompt assim: powershell caminho total do arquivo Wink

    segunda-feira, 24 de setembro de 2007 18:14

Todas as Respostas

  • Laerte,

     

    Valeu pela dica, aquele script é bem mais complexo do que precisava.

    Achei um que deu certinho pro que queria.

     

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.DeleteFile("G:\Volume\Logs\*.log")

     

    Apago todos os arquivos de log da pasta de uma vez só e não apago os outros arquivos que estiverem lá.

    Se colocar *.* vai tudo.

     

     

    Agora não encontrei um que renomeia *.log para meu.log.

    Na minha pasta "G:\Volume\Logs" aparece o log sempre com um incremento (log001.log, log002.log, ...).

    Então tem que ser uma função que pegue o arquivos .log e copie com o nome que eu quero.

     

    Como a variação vai de 1 até 10, coloquei um "If" pra cada arquivo.

     

    Problema resolvido em parte... o ideal seria usar um bem simples como o de apagar.

     

    Quem tiver mais uma ajuda, posta aqui por favor.

    Qualquer dica é uma boa caminhada.

     

    Valeu.

     

    Jensen Clayton

    sábado, 22 de setembro de 2007 03:23
  • Jensen me explica melhor esse script que você quer, você tem arquivos como log001.log, log002.log e quer renomear esses arquivos para um nome único ou pegar o log001.log e renomear para meulog.log, o log002 para meulog2.log? explica melhor que sinceramente não entendi bem Wink

    segunda-feira, 24 de setembro de 2007 14:53
  • Laerte,

     

    Valeu pela atenção.

    Conseguir resolver o problema, não da maneira mais façil, mas deu certo.

     

    A questão é que quero copiar o arquivo de log do NTBackup.

    Ele cria Backup01.log até Backup10.log e vai fazendo ciclos.

    No meu script, antes de começar o processo de backup, ele apaga todos os arquivos *.log dentro da pasta de log.

    Após o termino do processo de Backup, o programa NTBackup cria o log do processo.

    Mas vai criar toda vez com o numero diferente que varia de 01 até 10.

    Mas como apaguei antes todos os logs, sei que só tem um arquivo de log dentro dessa pasta, mas não sei o nome.

     

    Então queria que o script procurasse qualquer arquivo de log ou seja *.log e renomea-se  para Servidor.log.

     

    Como não consegui, fiz um IF pra cada nome, ou seja 10 IF:

    Se Backup01.log renomear Servidor.log End

    ...

    Se Backup10.log renomear Servidor.log End

     

    Se tiver uma rotina menor agradeço.

     

    Valeu.

     

    Jensen Clayton

    segunda-feira, 24 de setembro de 2007 15:36
  • Jensen, só uma outra pergunta vai sempre existir somente um arquivo nessa pasta porque se for esse script aqui acho que te atende:

     

    strComputer = "."

    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile WHERE path = '\\local da pasta onde está o arquivo' and extension = 'log'")
    for each objfile in colfiles
       objfile.rename("servidor.log")
    next

     

    ou em powershell

     

    get-childitem caminho da pasta onde está o arquivo |where {$_.extension -eq ".log"}|foreach {rename-item $_.fullname servidor.log}

     

    salva essa linha como .ps1 e executa ela no prompt assim: powershell caminho total do arquivo Wink

    segunda-feira, 24 de setembro de 2007 18:14
  • Pode haver outros arquivos... quando geramos um novo Backup, fica salvo nessa pasta os arquivos .bks (onde lista as pastas e arquivos que serão backupeados) e os arquivos .job (onde fica as configurações de agendamento do backup) e os demais .log.

     

    Como pode acontecer de outro administrador fazer um backup de emergência, então será gerado esses arquivos e o log... por isso apago o log toda vez antes de começar o meu backup assim tenho certeza que só terá um arquivos de log, mas não sei os outros.

     

    Posso até usar um script igual ao acima que citei pra apagar *.*, assim o seu vai ser perfeito.

     

    Valeu Laerte.

    terça-feira, 25 de setembro de 2007 00:06