Ir ao conteúdo
  • Cadastre-se

XCOPY Esta dando erro no sistema


Posts recomendados

Eu sei, mais o que acontece é que quando você usa o parametro /s você especifica que quer copiar todas as mp3 de c:\ incluindo subpastas para c:\mp3 incluindo c:\mp3 copiando arquivos de c:\mp3 para c:\mp3 o que gera o erro.

 

Remova o parametro /s que vai dar certo.

adicionado 2 minutos depois

Isso é mais provável de dar certo: xcopy /c /s /i c:\*.mp3 d:\mp3

 

A pasta mp3 tem que estar em outra partição. E se tiver várias mp3 com o mesmo nome em C:\ elas podem ser sobreescritas.

Link para o comentário
Compartilhar em outros sites

Tem sim,

Pode criar um bat. Você abre o bloco de notas, copia o código abaixo, cola no bloco de notas e salva como Copiar_mp3.bat, mais cuidado para deixar a codificação "Ansi". Ai é só clicar no bat e todas as mp3 serão copiadas para c:\mp3

 


@echo off
chcp 1252 > Nul 2>&1
if not exist c:\mp3 md c:\mp3
if exist %temp%\mp3.log del %temp%\mp3.log 

dir /a /s /b c:\*.mp3>> %temp%\mp3.log

for /f "usebackq delims=" %%a in ("%temp%\mp3.log") do (
if not exist "c:\mp3\%%~nxa" xcopy "%%a" "c:\mp3\" /c /i
)
pause

Link para o comentário
Compartilhar em outros sites

@ricardo_br  eu achava que era uma linha só e que quero colocar em um programa do python usando a função os.system mas com todas essas funções sera mais complicado !!

 

Por que quero que a pessoa digita o nome da pasta e ela entra não necessariamente MP3 apenas dei como exemplo . Mas vou colocar cada linha usando a função !!

adicionado 9 minutos depois

apesar de eu não saber da existência de alguns comandos eu entendi quase tudo desse arquivo de lote . So não entendi para que serve essa linha aqui

 

chcp 1252 > Nul 2>&1

Link para o comentário
Compartilhar em outros sites

Pode usar o comando for /? para ver o manual dele.

 

%%a é tipo uma váriável do For. Também poderia ser %%b, %%c, %%d ou a letra que você quiser.

 

A linha:

for /f "usebackq delims=" %%a in ("%temp%\mp3.log")

 

Analiza o arquivo %temp%\mp3.log linha por linha salvando cada linha na variável %%a. O arquivo mp3.log é uma lista com todas as *.mp3 que existem em c:\ que eu salvei lá com o comando dir.

 

por exemplo (mp3.log:):


c:\Users\Ricardo\Music\Faith No More - Sol Invictus\10 - From the Dead.mp3
c:\Users\Ricardo\Music\Foo Fighters - Concrete and Gold (2017)\01. T-Shirt.mp3
c:\Users\Ricardo\Music\Foo Fighters - Concrete and Gold (2017)\02. Run.mp3

 

Como ele passa cada linha para o %%a se o %%a for igual a:

c:\Users\Ricardo\Music\Faith No More - Sol Invictus\10 - From the Dead.mp3

O %%~nxa seria igual ao %%a porém contendo apenas o nome do arquivo + extensão

então %%~nxa:

10 - From the Dead.mp3

 

Então ele verifica se "10 - From the Dead.mp3" já existe em c:\mp3 e se não existir ele copia para lá (para não ter duplicadas).

 

%%~nx = Name eXtension seguido da variável

 

Link para o comentário
Compartilhar em outros sites

@ricardo_br  Muito obrigado o resto eu tinha pesquisado e entendido que esse %%a que você colocou e uma variavel

esse nx que eu não tinha entendido agora ficou esclarecido . Muito Obrigado

adicionado 3 minutos depois

@ricardo_br até aprendi mais coisas com as variaveis olha o que eu fiz

 

@echo off
chcp 1252 > Nul 2>&1
set /p extensao= "Digite uma extensão: "
set /p diretorio= "Digite a pasta de destino"
echo \%diretorio%
if not exist c:\%diretorio% md c:\%diretorio%
if exist %temp%\%diretorio%.log del %temp%\%diretorio%.log

dir /a /s /b c:\%extensao%>> %temp%\%diretorio%.log

for /f "usebackq delims=" %%a in ("%temp%\%diretorio%.log") do (
if not exist "c:\%diretorio%\%%~nxa" xcopy "%%a" "c:\%diretorio%\" /c /i
)


pause

 

agora eu digito a extensão que eu quero e a pasta de destino

Só não entendi essa linha da programação ainda chcp 1252 > Nul 2>&1?

Link para o comentário
Compartilhar em outros sites

chcp quer dizer CHange Code Page. Você o usa seguido de um codigo de paginação de caracteres que o prompt de comando deve usar. O padrão nos Windows Português Brasileiro é 850.

DC37afc.jpg

 

Por padrão depois de usar chcp aparece uma mensagem na tela tipo: Página de código ativa: 850

 

Para que essa mensagem não apareça na tela eu adicionei "> Nul 2>&1" que faz com que o comando não exiba mensagens nem erros na tela. "Nul" é tipo um Buraco Negro do prompt de comando, tudo que você envia para lá desaparece e nunca mais é visto.

Link para o comentário
Compartilhar em outros sites

2 encaminha mensagens de erro 1 encaminha mensagens de saida padrão.

 

Na verdade > Nul 2>&1 é uma maneira mais compacta de fazer isso: 2> Nul 1> Nul

 

Por exemplo:


@echo off
xcopy /i /c /s c:\*.mp3 c:\mp3 2>%userprofile%\desktop\erro.txt 1>%userprofile%\desktop\erro2.txt
pause

 

Vai mandar a mensagem de erro: "Não foi possível fazer cópias cíclicas" para erro.txt e a mensagem padrão "0 Arquivo(s) copiados" para erro2.txt

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...