PDA

Ver Versão Completa : Scripts uteis para organizar catalogo de maquinas de musicas.



Belini
11/04/2011, 10:46
As vezes pego músicas do catálogo de um amigo e fica difícil encontrar o que entrou de novidade na lista por isto fiz um script que compara o catálogo atual e só lista o que não foi encontrado no antigo depois é só usar o outro programa para copiar os cd´'s novos para os outros Hd's, não coloquei o programa junto com o que copia pois as vezes é preciso tirar algum da lista que será copiada após definir o que copiar é só indicar o diretório de destimo e dar um enter para iniciar a cópia,fiz outro que deleta as pastas antigas e esta incluido no que gera as listas mais também deixei este separado caso precisem usar só esta função, o problema deste script é que para gerar a lista dos novos demora um pouco dependendo do número de cd's dos catálogos pois é feita a comparação de cada cd novo com todos do catálogo antigo, o ideal mesmo era comparar só com os que iniciassem com a mesma lista exemplo "Bruno e Marrone", só iria comparar com cd's iniciados com a letra "B", caso alguém queira melhorá-lo não deixe de postar após fazer a modificação.

Comparar 2 catálogos e gera uma lista das que faltam as que faltam: 423
compara a lista antiga com a lista atualizada e gera outra só dos cd's mais novos, antes de comparar deleta todas as pastas vazias do católogo de origem e do catálogo de destino.

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=D:\00 BACKUP DE DADOS\00 ARQUIVOS ARCADE\07 Icones\11.ico
#AutoIt3Wrapper_Res_Comment=Função: criar uma lista de cd's novos
#AutoIt3Wrapper_Res_Description=Belini Scripts
#AutoIt3Wrapper_Res_LegalCopyright=Feito por Belini em 12/04/2011
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

; =======================================
; Autor: Belini
; Data: 15/04/2011
; Objetivo: Criar uma lista de cd's novos
; =======================================

Global $origem_1,$origem_2,$lendo_novos,$numera_cd_1,$num era_cd_2; variáveis globais
Global $numera_cd_1 = 0; inicia a variável
Global $numera_cd_2 = 0; inicia a variável
Global $numera_cd_3 = 0; inicia a variável
Global $contador_2 = 0; inicia a variável
Global $contador_3 = 0; inicia a variável
Global $detalhes = 0; inicia a variável
local $pronto_1 = 0; inicia a variável
local $pronto_2 = 0; inicia a variável
local $conta_deletadas_1 = 0; inicia a variável
local $conta_deletadas_2 = 0; inicia a variável
local $origem_1,$origem_2,$compara_tamanho_1,$compara_ta manho_2; variáveis locais
Local $Hora_Inicio = @hour & ":" & @min; guarda a hora de início

; <================================================== ============================== início da função que deletas as pastas vazias

Local $caixa_1_leitura=IniRead("00 Diretorios.txt","catálogo","Catálogo Antigo",""); lê o caminho do catálogo antigo
Local $caixa_2_leitura=IniRead("00 Diretorios.txt","catálogo","Catálogo Novo",""); lê o caminho do catálogo novo

Global $caixa_1=InputBox("Antigo","Coloque o Caminho do catálogo ANTIGO Ex: F:\Catálogo",$caixa_1_leitura); caixa caminho cat. antigo
Global $caixa_2=InputBox("Novo","Coloque o Caminho do catálogo NOVO Ex: F:\Catálogo",$caixa_2_leitura); caixa caminho cat. Novo

IniWrite("00 Diretorios.txt","catálogo","Catálogo Antigo",$caixa_1); grava o caminho do catálogo antigo
IniWrite("00 Diretorios.txt","catálogo","Catálogo Novo",$caixa_2); grava o caminho do catálogo novo

FileDelete(".\01 Cd's mais Recentes.txt"); deleta para gerar outra lista
FileDelete(".\Tempo para listar.txt"); deleta para gerar outra lista
FileDelete(".\Catálogo Antigo.txt"); deleta para gerar outra lista
FileDelete(".\Catálogo Novo.txt"); deleta para gerar outra lista

if $caixa_1 = "" Then
MsgBox("","","Digite o caminho do catálogo antigo",2); pede para digitar o caminho do catálogo e encerra
exit; fecha o script
endif

if $caixa_2 = "" Then
MsgBox("","","Digite o caminho do catálogo Novo",2); pede para digitar o caminho do catálogo e encerra
exit; fecha o script
endif

local $procura_1 = FileFindFirstFile($caixa_1 & "\*.*"); pega o nome da 1ª pasta
local $procura_2 = FileFindFirstFile($caixa_2 & "\*.*"); pega o nome do 1ª pasta

While 1; inicia o loop
$origem_1 = FileFindNextFile($procura_1); pega o nome da próxima pasta
$origem_2 = FileFindNextFile($procura_2); pega o nome da próxima pasta

if $origem_1 = "" Then; quando nenhuma pasta muda o estado da variável
$pronto_1 = 1; indica que este catálogo já foi revisado
endif

if $origem_2 = "" Then; quando nenhuma pasta muda o estado da variável
$pronto_2 = 1; indica que este catálogo já foi revisado
endif

if $pronto_1 = 1 and $pronto_2 = 1 Then; quando nenhuma pasta sai do loop
exitloop; sai do loop
endif

$compara_tamanho_1 = DirGetSize($caixa_1 & "\" & $origem_1); pega o tamanho da pasta
if $compara_tamanho_1 < 1500000 then; compara se o tamanho é menor que 1,5mb
$conta_deletadas_1 +=1; conta quantas foram excluídas
DirRemove($caixa_1 & "\" & $origem_1); remove a pasta vazia
endif

$compara_tamanho_2 = DirGetSize($caixa_2 & "\" & $origem_2); pega o tamanho da pasta
if $compara_tamanho_2 < 1500000 then; compara se o tamanho é menor que 1,5mb
$conta_deletadas_2 +=1; conta quantas foram excluídas
DirRemove($caixa_2 & "\" & $origem_2); remove a pasta vazia
endif

Wend

if $conta_deletadas_1 > 0 or $conta_deletadas_2 > 0 then; se alguma pasta vazia foi deletada, mostra a mensagem
; mostra quantas pastas vazias foram deletads
MsgBox("","","Foram deletadas " & $conta_deletadas_1 & " Pastas vazias no catálogo antigo " & $conta_deletadas_2 & " no catálogo novo",3)
endif

; <================================================== ============================== chama as funções executa e depois encerra o script

SplashTextOn("OK", "> > > Criando a lista dos Cd's aguarde..." ,450, 30, -1, -1, 1, "", 18); mostra a lista

catalogo_antigo(); chama a função que gera a lista do catálogo antigo

catalogo_novo(); chama a função que gera a lista do catálogo novo

procura_novos(); chama a função que gera a lista dos cd's novos

Local $Hora_Final = @hour & ":" & @min; guarda a hora de término das tarefas

exit; encerra o scrip

FileWriteLine("01 Cd's mais Recentes.txt","Início as " & $Hora_Inicio & " e Término as " & $Hora_Final & " em " & @MDAY & "\" & @MON & "\" & @YEAR ); hora inicio e término
FileWriteLine("01 Cd's mais Recentes.txt","================================================== ==="); escreve p/ sepapar

SplashTextOn("OK","Início as " & $Hora_Inicio & " e Término as " & $Hora_Final & " encerrando...",530, 30, -1, -1, 1, "", 18); mostra a lista

sleep(3000); dá um intervalo

FileDelete(".\Catálogo Antigo.txt"); deleta a lista do catálogo antigo
FileDelete(".\Catálogo Novo.txt"); deleta a lista do catálogo novo

SplashOff(); fecha a janela da mensagem

; <================================================== ============================================ grava a lista catálogo antigo

func catalogo_antigo(); procura as pastas
Local $procura_1 = FileFindFirstFile($caixa_1 & "\*.*"); pega o nome do 1º arquivo
FileWriteLine(".\Catálogo Antigo.txt","================"); grava uma linha para separar
FileWriteLine(".\Catálogo Antigo.txt","[Catálogo Antigo]"); grava o nome do catálogo antigo.txt
FileWriteLine(".\Catálogo Antigo.txt","================"); grava uma linha para separar

While 1; inicia o loop

$numera_cd_1 +=1; aumenta 1 no contador
$origem_1 = FileFindNextFile($procura_1); pega o nome do próximo arquivo

if $origem_1 = "" Then; quando não encontrar nada escrito sai do loop
ExitLoop; sai do loop
endif

IniWrite(".\Catálogo Antigo.txt","Catálogo Antigo","CD_" & $numera_cd_1,$origem_1); grava o nome dos cd's

Wend

endfunc

; <================================================== ================================================== ======== grava catálogo novo

func catalogo_novo(); procura as pastas
Local $fim_2 = 0; inicia a variável
Local $procura_2 = FileFindFirstFile($caixa_2 & "\*.*"); pega o nome do 1º arquivo
Local $confere_pasta; variável local
FileWriteLine(".\Catálogo Novo.txt","=============="); grava uma linha para separar
FileWriteLine(".\Catálogo Novo.txt","[Catálogo Novo]"); grava o nome do catálogo novo.txt
FileWriteLine(".\Catálogo Novo.txt","=============="); grava uma linha para separar

While 1; inicia o loop

$numera_cd_2 +=1; aumenta !" no contador
$origem_2 = FileFindNextFile($procura_2); pega o nome do próximo arquivo

if $origem_2 = "" Then; quando não encontrar nada escrito sai do loop
ExitLoop; sai do loop
endif

;$confere_pasta = FileFindFirstFile($caixa_2 & "\" & $origem_2 & "\*.*"); confere se é pasta e se contém arquivos
;if $confere_pasta = -1 Then; se não for uma pasta ou não tiver arquivo nela não grava
;$numera_cd_2 -=1; se não tiver nada desconta 1 no contador
;else
IniWrite(".\Catálogo Novo.txt","Catálogo Novo","CD_" & $numera_cd_2,$origem_2); grava o nome dos cd's
;endif

Wend

endfunc

; <================================================== ================================================== === procura os cd's novos

func procura_novos()

FileWriteLine("01 Cd's mais Recentes.txt","================================================== ==="); escreve p/ sepapar
FileWriteLine("01 Cd's mais Recentes.txt","[Cd's Recentes encontrados no Catálogo Novo]"); cria o arquivo
FileWriteLine("01 Cd's mais Recentes.txt","================================================== ==="); escreve p/ sepapar
FileWriteLine("01 Cd's mais Recentes.txt",""); grava uma linha em branco

While 1
$numera_cd_3 +=1
$lendo_novos=Iniread(".\Catálogo Novo.txt","Catálogo Novo","CD_" & $numera_cd_3,""); lê a lista de cd's novos

if $lendo_novos = "" Then
FileWriteLine("01 Cd's mais Recentes.txt",""); grava uma linha em branco
FileWriteLine("01 Cd's mais Recentes.txt","================================================== ==="); escreve p/ sepapar
IniWrite("01 Cd's mais Recentes.txt","Cd's Recentes encontrados no Catálogo Novo","Número Total de Cd's do Catálogo Antigo",$numera_cd_1); cat. antigo
FileWriteLine("01 Cd's mais Recentes.txt","================================================== ==="); escreve p/ sepapar
IniWrite("01 Cd's mais Recentes.txt","Cd's Recentes encontrados no Catálogo Novo","Número Total de Cd's do Catálogo Novo", $numera_cd_2); cd's do cat. novo
FileWriteLine("01 Cd's mais Recentes.txt","================================================== ==="); escreve p/ sepapar
IniWrite(".\01 Cd's mais Recentes.txt","Cd's Recentes encontrados no Catálogo Novo","Total de cd's Novos Encontrados",$contador_3); numero de cd's novos
FileWriteLine("01 Cd's mais Recentes.txt","================================================== ==="); escreve p/ sepapar
IniWrite(".\01 Cd's mais Recentes.txt","Cd's Recentes encontrados no Catálogo Novo","Diretório",$caixa_2); escreve o caminho do catálogo de cd's novos
FileWriteLine("01 Cd's mais Recentes.txt","================================================== ==="); escreve p/ sepapar
exitloop
endif

grava_os_q_nao_tem(); chama a função

wend

endfunc

; <================================================== ================================================== gera a lista dos cd's novos

Func grava_os_q_nao_tem()

Local $leitura,$total_Cd; variáveis locais
Local $sair = 1; inicia a variável
Local $detalhes = 0 ; inicia a variável
Local $linha_em_branco = 0; inicia a variável
While 1; início do loop
$contador_2 += 1; começa a contagem e adiciona + 1

$cd_novo = IniRead(".\Catálogo Antigo.txt",$origem_2,"M_1",""); lê o numero
$cd_antigo=IniRead("Catálogo Antigo.txt","Catálogo Antigo","CD_" & $contador_2, "") ; lê a lista de cd's antiga
$comparar = StringCompare($cd_antigo,$lendo_novos, 2); compara os nomes

If $comparar = 0 Then; se for "0" é igual então executa
$sair = 0 ; define o valor "0" para não gravar
$contador_2 = 0; zera o contador 2
ExitLoop; sai do loop
EndIf

If $cd_antigo = "" Then; quando terminar número de músicas sai do loop
$contador_2 = 0 ; zera o contador 2
ExitLoop; sai do loop
EndIf

WEnd; fim do loop

If $sair = 1 Then; se variável continuar com o valor "1" é porque o número não é igual então grava
$contador_3 += 1; aumenta mais 1 no contador 3 para numerar os cd's
SplashTextOn("OK", "> > > Criando a lista dos Cd's Recentes aguarde..." & $lendo_novos & "> > > > > > > > > > > > > > > > > > >" ,1000, 30, -1, -1, 1, "", 18); mostra a lista
IniWrite(".\01 Cd's mais Recentes.txt","Cd's Recentes encontrados no Catálogo Novo","CD_" & $contador_3,$lendo_novos); escreve o nome do novo Cd
EndIf

EndFunc

; <================================================== =================================== fim das funções, volta ao começo do script

Script para deletar as pastas vazias dos catálogos: 422
usado separadamente se quiser apenas deletar as pastas vazias de um catálogo de músicas.

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=D:\00 BACKUP DE DADOS\00 ARQUIVOS ARCADE\07 Icones\01.ico
#AutoIt3Wrapper_Res_Comment=Função: Deletar as pastas vazias dos catálogos
#AutoIt3Wrapper_Res_Description=Belini Scripts
#AutoIt3Wrapper_Res_LegalCopyright=Feito por Belini em 12/04/2011
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

; ================================================
; Autor: Belini
; Data: 15/04/2011
; Objetivo: Deletar as pastas vazias dos catálogos
; ================================================

Global $caixa_1=InputBox("Antigo","Coloque o Caminho do catálogo ANTIGO Ex: F:\Catálogo",""); Antigo
Global $caixa_2=InputBox("Novo","Coloque o Caminho do catálogo NOVO Ex: F:\Catálogo",""); Novo

if $caixa_1 = "" Then
MsgBox("","ERRO","Digite o caminho do catálogo antigo",2); pede para digitar o caminho do catálogo e encerra
exit; fecha o script
endif

if $caixa_2 = "" Then
MsgBox("","ERRO","Digite o caminho do catálogo Novo",2); pede para digitar o caminho do catálogo e encerra
exit; fecha o script
endif

local $pronto_1 = 0; inicia a variável
local $pronto_2 = 0; inicia a variável
local $conta_deletadas_1 = 0; inicia a variável
local $conta_deletadas_2 = 0; inicia a variável
local $origem_1,$origem_2,$compara_tamanho_1,$compara_ta manho_2; variáveis locais
local $procura_1 = FileFindFirstFile($caixa_1 & "\*.*"); pega o nome da 1ª pasta
local $procura_2 = FileFindFirstFile($caixa_2 & "\*.*"); pega o nome do 1ª pasta

While 1; inicia o loop
$origem_1 = FileFindNextFile($procura_1); pega o nome do próximo arquivo
$origem_2 = FileFindNextFile($procura_2); pega o nome do próximo arquivo

if $origem_1 = "" Then; quando nenhuma pasta muda o estado da variável
$pronto_1 = 1; indica que este catálogo já foi revisado
endif

if $origem_2 = "" Then; quando nenhuma pasta muda o estado da variável
$pronto_2 = 1; indica que este catálogo já foi revisado
endif

if $pronto_1 = 1 and $pronto_2 = 1 Then; quando nenhuma pasta sai do loop
exitloop; sai do loop
endif

$compara_tamanho_1 = DirGetSize($caixa_1 & "\" & $origem_1); pega o tamanho da pasta
if $compara_tamanho_1 < 1500000 then; compara se o tamanho é menor que 1,5mb
$conta_deletadas_1 +=1; conta quantas foram excluídas
DirRemove($caixa_1 & "\" & $origem_1); remove a pasta vazia
endif

$compara_tamanho_2 = DirGetSize($caixa_2 & "\" & $origem_2); pega o tamanho da pasta
if $compara_tamanho_2 < 1500000 then; compara se o tamanho é menor que 1,5mb
$conta_deletadas_2 +=1; conta quantas foram excluídas
DirRemove($caixa_2 & "\" & $origem_2); remove a pasta vazia
endif


Wend

; mostra quantas pastas vazias foram deletads
MsgBox("","FINALIZANDO","Foram deletadas " & $conta_deletadas_1 & " Pastas vazias no catálogo antigo " & $conta_deletadas_2 & " no catálogo novo",3)

Sript para copiar somente os cd's novos: 421
usado para copiar os cd's novos para atualizar outro catálogo, será usada a lista gerada pelo script criador de listas e o catálogo de origem (atual) tem que estar no computador no endereço informado na janela que pede o catálogo atualizado.

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=D:\00 BACKUP DE DADOS\00 ARQUIVOS ARCADE\07 Icones\02.ico
#AutoIt3Wrapper_Res_Comment=Função: Copiar a lista de cd's novos para atualizar outro catálogo
#AutoIt3Wrapper_Res_Description=Belini Scripts
#AutoIt3Wrapper_Res_LegalCopyright=Feito por Belini em 30/04/2011
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

; ================================================== =================
; Autor: Belini
; Data: 30/04/2011
;Objetivo: Copiar a lista de cd's novos para atualizar outro catálogo
; ================================================== =================

Global $leitura
Global $contador = 0
Local $caixa_leitura_1=IniRead("00 Diretorios.txt","catálogo","Origem dos cd's Novos","")
Local $caixa_leitura_2=IniRead("00 Diretorios.txt","catálogo","Destino dos cd's Novos","")


Global $caixa_mensagem_1=InputBox("ORIGEM","Coloque o local onde estão os Cd's Novos.",$caixa_leitura_1); Antigo
Global $caixa_mensagem_2=InputBox("DESTINO","Coloque o Destino dos Cd's Novos.",$caixa_leitura_2); Antigo

IniWrite("00 Diretorios.txt","catálogo","Origem dos cd's Novos",$caixa_mensagem_1)
IniWrite("00 Diretorios.txt","catálogo","Destino dos cd's Novos",$caixa_mensagem_2)


Local $num_novos=Iniread(".\01 cd's novos encontrados .txt","Cd's Recentes encontrados no Catálogo Novo","Total de cd's Novos Encontrados",""); lê o caminho do catálogo

while 1
$contador +=1

$leitura=IniRead(".\01 cd's novos encontrados .txt","Cd's Recentes encontrados no Catálogo Novo","CD_" & $contador,"")

SplashTextOn("OK", "> > > > Aguarde, Copiando Cd's... " & $leitura & " > > > > > > > > > > > > > > > > > > > >", 900, 30, -1, -1, 1, "", 18)

if not $leitura = "" then
copiar()
endif

if $contador = $num_novos Then
ExitLoop
endif

wend

SplashOff()

func copiar()
dircopy($caixa_mensagem_1 & "\" & $leitura, $caixa_mensagem_2 & "\" & $leitura,1)
endfunc


Copia e retira numeração antes das música: 471
percebi que tinha muita música repetida ocupando espaço no hd isto porque se estirem com numeração diferente mesmo colocando todas na mesma pasta não irão substituir ao passo que se estiverem em ordem alfabética fica mais fácil encontrar e também serão substituidas as que forem iguais, usando este script você pode copiar seu catálogo já retirando a numeração antes da música depois é só juntar todas as pastas do mesmo cantor em uma só, com certeza você economizará pelo menos 30% de espaço em disco.

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=D:\06 ARCADE\07 Icones\26.ico
#AutoIt3Wrapper_Res_Comment=Função: tirar a numeração antes de cada música
#AutoIt3Wrapper_Res_Description=Belini Scripts
#AutoIt3Wrapper_Res_LegalCopyright=Feito por Belini em 20/04/2011
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

; ================================================
; Autor: Belini
; Data: 20/04/2011
; Objetivo: tirar a numeração antes de cada música
; ================================================

Global $origem_1; variável global
Global $aspas = Chr(34) ;34 é o código ASC das aspas.

Local $caixa_0_leitura = IniRead("00 Diretorios.txt", "catálogo", "mover arquivos", ""); lê o caminho a opção
Local $caixa_1_leitura = IniRead("00 Diretorios.txt", "catálogo", "tirar numeros", ""); lê o caminho da pasta onde estão os cd's
Local $caixa_2_leitura = IniRead("00 Diretorios.txt", "catálogo", "sem numero", ""); lê o caminho da pasta onde estão os cd's

Global $caixa_0 = InputBox("Antigo", "Coloque o SIM se quiser mover os arquivos para outra pasta e NÃO para ficar na mesma pasta.", $caixa_0_leitura); define a opção
Global $caixa_1 = InputBox("Antigo", "Coloque o Caminho das músicas com os números no início.", $caixa_1_leitura); caixa caminho cd's

if $caixa_0 = "sim" then; se a resposta for sim executa
Global $caixa_2 = InputBox("Antigo", "Coloque o Caminho de destino das músicas sem o número.", $caixa_2_leitura); caixa caminho cd's
else; se não for sim executa
$caixa_2 = $caixa_1; define o mesmo caminho de origem para ser o de destino
endif

IniWrite("00 Diretorios.txt", "catálogo", "mover arquivos", $caixa_0); grava a opção
IniWrite("00 Diretorios.txt", "catálogo", "tirar numeros", $caixa_1); grava o caminho da pasta onde estão os cd's

if $caixa_0 = "sim" then; se a resposta for sim executa
IniWrite("00 Diretorios.txt", "catálogo", "sem numero", $caixa_2); grava o caminho de destino dos cd's
endif

If $caixa_1 = "" Then; se estiver em branco executa
MsgBox("", "ERRO", "Digite o caminho da pasta de musicas", 4); pede para digitar o caminho da pasta onde estão os cd's
Exit; fecha o script
EndIf

If $caixa_2 = "" And $caixa_0 = "sim" Then; se não preencheu e se é para mover então executa
MsgBox("", "ERRO", "Digite o caminho de destino das musicas", 4); pede para digitar o caminho destinodos cd´s
Exit; fecha o script
EndIf

Local $procura_1 = FileFindFirstFile($caixa_1 & "\*.*"); pega o nome do 1º arquivo

If $procura_1 = -1 Then; se não houver pastas encerra
MsgBox(0, "Encerrando", "Não foi encontrado nenhum arquivo nesta pasta", 3); mostra a mensagem
Exit; encerra o script
EndIf

While 1; inicia o loop
$origem_1 = FileFindNextFile($procura_1); pega o nome do próximo arquivo

If $origem_1 = "" Then; quando não encontrar nada escrito sai do loop
ExitLoop; sai do loop
EndIf

copia__arquivo()

WEnd

Func copia__arquivo(); copia os arquivos
Local $procura_2 = FileFindFirstFile($caixa_1 & "\" & $origem_1 & "\*.*"); pega o nome da 1ª pasta de músicas
Local $origem_2, $extrai_1, $extrai_2, $extrai_3, $numero_1; variáveis locais

SplashTextOn("OK", "> > > > Aguarde, Copiando Cd's... " & $origem_1 & " > > > > > > > > > > > > > > > > > > > >", 900, 30, -1, -1, 1, "", 18)
Sleep(500); dá um intervalo
SplashOff(); fecha a janela

If $procura_2 = -1 Then; se não houver pastas encerra
MsgBox(0, "Encerrando", "Não foi encontrado nenhuna música nesta pasta", 3); mostra a mensagem
Exit; encerra o script
EndIf

While 1; inicia o loop

$origem_2 = FileFindNextFile($procura_2); pega o nome do próximo arquivo dentro da pasta
Local $corta = StringMid($origem_2, 1, 4); pega a parte da string que será analizada
Local $numero_vazio = StringMid($origem_2, 1, 3); pega a parte da string que será analizada
Local $tira_espaco = StringStripWS($numero_vazio, 8); tira os espaços em branco
Local $confere = StringIsDigit($tira_espaco); confere se tem só números
Local $numero_vazio_2 = StringMid($origem_2, 1, 2); pega a parte da string que será analizada
Local $tira_espaco_2 = StringStripWS($numero_vazio_2, 8); tira os espaços em branco
Local $confere_2 = StringIsDigit($tira_espaco_2); confere se tem só números
Local $numero_1 = StringInStr($corta, " - ", 2, 1); procura pelo "-" no início
Local $numero_2 = StringInStr($corta, " . ", 2, 1); procura pelo "." no início
Local $numero_3 = StringInStr($corta, "- ", 2, 1); procura pelo "-" no início
Local $numero_4 = StringInStr($corta, ". ", 2, 1); procura pelo "." no início
Local $numero_5 = StringInStr($corta, "-", 2, 1); procura pelo "-" no início
Local $numero_6 = StringInStr($corta, ".", 2, 1); procura pelo "." no início
Local $conta_ate_ponto = StringInStr($origem_2, ".", 2, 2); conta o número de letras ate o segundo ponto se houver
Local $procura_traves = StringInStr($corta, "-", 2); verifica se tem o "-" na string analizada
Local $numero_vazio = StringMid($origem_2, 1, 3); pega a parte da string que será analizada
Local $codigo = $numero_1 & $numero_2 & $numero_3 & $numero_4 & $numero_5 & $numero_6 ; varáveis locais

If $origem_2 = "" Then; quando não encontrar nenhum arquivo sai do loop
ExitLoop; sai do loop
EndIf

If StringIsDigit($numero_vazio) = 1 Then
MsgBox("", "", "só numero")
EndIf

Local $vago = StringMid($origem_2, 1, 3); pega a parte da string que será analizada

If $conta_ate_ponto = 0 And $procura_traves = 0 Or $codigo = 000000 Then; se tiver só o ".", não tiver "-" ou não tiver numeração libera para copiar
$tamanho = 0; não libera para comparar e copia direto arquivos de foto podem ter 1 ou 2 letras só antes da extensão
Else
$tamanho = 1; libera para comparar e ver se esta numerado para cortar
EndIf

If $codigo = 000020 Or $codigo = 000002 And $tamanho = 1 Then; se encontrar um dos códigos executa
$extrai_3 = StringTrimLeft($origem_2, 2); extrai 2 letras
SplashTextOn("OK", "> > > > Copiando música " & $aspas & $extrai_3 & $aspas & " > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >", 900, 30, -1, -1, 1, "", 18)
$tira_espaco_inicial = StringStripWS($extrai_3, 1); tira os espaços em branco do início
FileMove($caixa_1 & "\" & $origem_1 & "\" & $origem_2, $caixa_2 & "\" & $origem_1 & "\" & $tira_espaco_inicial, 9); copia sem a numeração
EndIf

If $codigo = 000030 Or $codigo = 000003 And $tamanho = 1 Then; se encontrar um dos códigos executa
$extrai_3 = StringTrimLeft($origem_2, 3); extrai 2 letras
SplashTextOn("OK", "> > > > Copiando música " & $aspas & $extrai_3 & $aspas & " > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >", 900, 30, -1, -1, 1, "", 18)
$tira_espaco_inicial = StringStripWS($extrai_3, 1); tira os espaços em branco do início
FileMove($caixa_1 & "\" & $origem_1 & "\" & $origem_2, $caixa_2 & "\" & $origem_1 & "\" & $tira_espaco_inicial, 9); copia sem a numeração
EndIf

If $codigo = 000040 Or $codigo = 000004 And $tamanho = 1 Then; se encontrar um dos códigos executa
$extrai_3 = StringTrimLeft($origem_2, 5); extrai 2 letras
SplashTextOn("OK", "> > > > Copiando música " & $aspas & $extrai_3 & $aspas & " > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >", 900, 30, -1, -1, 1, "", 18)
$tira_espaco_inicial = StringStripWS($extrai_3, 1); tira os espaços em branco do início
FileMove($caixa_1 & "\" & $origem_1 & "\" & $origem_2, $caixa_2 & "\" & $origem_1 & "\" & $tira_espaco_inicial, 9); copia sem a numeração
EndIf

If $codigo = 002020 Or $codigo = 000202 And $tamanho = 1 Then; se encontrar um dos códigos executa
$extrai_2 = StringTrimLeft($origem_2, 3); extrai 3 letras
SplashTextOn("OK", "> > > > Copiando música " & $aspas & $extrai_2 & $aspas & " > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >", 900, 30, -1, -1, 1, "", 18)
$tira_espaco_inicial = StringStripWS($extrai_2, 1); tira os espaços em branco do início
FileMove($caixa_1 & "\" & $origem_1 & "\" & $origem_2, $caixa_2 & "\" & $origem_1 & "\" & $tira_espaco_inicial, 9); copia sem a numeração
EndIf

If $codigo = 000303 Or $codigo = 003030 And $tamanho = 1 Then; se encontrar um dos códigos executa
$extrai_3 = StringTrimLeft($origem_2, 4); extrai 2 letras
SplashTextOn("OK", "> > > > Copiando música " & $aspas & $extrai_3 & $aspas & " > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >", 900, 30, -1, -1, 1, "", 18)
$tira_espaco_inicial = StringStripWS($extrai_3, 1); tira os espaços em branco do início
FileMove($caixa_1 & "\" & $origem_1 & "\" & $origem_2, $caixa_2 & "\" & $origem_1 & "\" & $tira_espaco_inicial, 9); copia sem a numeração
EndIf

If $codigo = 203030 Or $codigo = 020303 And $tamanho = 1 Then; se encontrar um dos códigos executa
$extrai_1 = StringTrimLeft($origem_2, 4); extrai 4 letras
SplashTextOn("OK", "> > > > Copiando música " & $aspas & $extrai_1 & $aspas & " > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >", 900, 30, -1, -1, 1, "", 18)
$tira_espaco_inicial = StringStripWS($extrai_1, 1); tira os espaços em branco do início
FileMove($caixa_1 & "\" & $origem_1 & "\" & $origem_2, $caixa_2 & "\" & $origem_1 & "\" & $tira_espaco_inicial, 9); copia sem a numeração
EndIf

If $confere_2 = 1 Then
$extrai_2 = StringTrimLeft($origem_2, 2); extrai 2 letras
SplashTextOn("OK", "> > > > Copiando música " & $aspas & $extrai_1 & $aspas & " > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >", 900, 30, -1, -1, 1, "", 18)
$tira_espaco_inicial = StringStripWS($extrai_2, 1); tira os espaços em branco do início
FileMove($caixa_1 & "\" & $origem_1 & "\" & $origem_2, $caixa_2 & "\" & $origem_1 & "\" & $tira_espaco_inicial, 9); copia sem a numeração
EndIf

If $confere = 1 Then
$extrai_3 = StringTrimLeft($origem_2, 3); extrai 3 letras
SplashTextOn("OK", "> > > > Copiando música " & $aspas & $extrai_1 & $aspas & " > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >", 900, 30, -1, -1, 1, "", 18)
$tira_espaco_inicial = StringStripWS($extrai_3, 1); tira os espaços em branco do início
FileMove($caixa_1 & "\" & $origem_1 & "\" & $origem_2, $caixa_2 & "\" & $origem_1 & "\" & $tira_espaco_inicial, 9); copia sem a numeração
EndIf

If $conta_ate_ponto = 0 And $procura_traves = 0 Or $codigo = 000000 Then; se tiver só o ".", não tiver "-" ou não tiver numeração libera para copiar
SplashTextOn("OK", "> > > > Copiando música " & $aspas & $origem_2 & $aspas & " > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >", 900, 30, -1, -1, 1, "", 18)
FileMove($caixa_1 & "\" & $origem_1 & "\" & $origem_2, $caixa_2 & "\" & $origem_1 & "\" & $origem_2, 9); copia o nome
EndIf

WEnd
EndFunc ;==>copia__arquivo

DANIEL NUNES
13/12/2011, 20:37
muito bom este apetrecho no quit "batjukebox" cada vez muito produtivo em seus programas.Toma um up ai pra tu.

crizim
13/12/2011, 23:25
execente ate mesmo pra que nao mexe com jukebox