Usuário com melhor resposta
Como renomear, mover, copiar, deletar *.mp3?

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
Respostas
-
Jensen olha esse tópico aqui:
http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=1778604&SiteID=29
-
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
-
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")
nextou 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
Todas as Respostas
-
Jensen olha esse tópico aqui:
http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=1778604&SiteID=29
-
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
-
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
-
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
-
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")
nextou 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
-
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.