Como copiar arquivos com apenas 1 extensão e não duplicar no prompt de comando

1

Eu preciso copiar apenas .jpg e não .jpg.jpg de uma pasta específica.

Quando eu faço um copy c:\data\*.jpg D:\backup\ both .jpg e .jpg.jpg arquivos são copiados e não sei como omitir os arquivos nomeados com extensão dupla da operação de cópia.

Observação: não tenho permissão para renomear ou excluir esses .jpg.jpg files

    
por user935892 23.08.2018 / 11:21

2 respostas

0

Usando o powershell em vez do prompt de comando:

Copy-Item C:\data*.jpg -Destination D:\backup -Exclude "*.jpg.jpg"

Isto é claro, presumindo que você tenha muitos arquivos chamados data[something].jpg em C: e não uma árvore de diretório com imagens.

Se você quiser uma cópia recursiva de jpg s em C: \ Data \ sem arquivos terminados em .jpg.jpg :

$source = 'C:\data'
$dest = 'D:\backup'
$exclude = @('*.jpg.jpg')
Get-ChildItem $source -Recurse -Exclude $exclude -Filter *.jpg | Copy-Item -Destination {Join-Path $dest $_.FullName.Substring($source.length)}

(vergonhosamente roubado e modificado de esta resposta em SO )

    
por 23.08.2018 / 14:26
1

Você pode usar um loop para para iterar arquivos no diretório e usar substituições variáveis para verificar se cada parte do nome do arquivo " somente sem sua própria extensão " não contém outra extensão ( .jpg ). Os arquivos que não contiverem uma extensão adicional dentro de seu nome de arquivo serão copiados com o comando xcopy usando condicional if lógica de acordo.

Script em lote

@ECHO ON

SET "srcPath=c:\data"
SET "copyPath=D:\backup"

for %%a in ("%srcPath%\*.jpg") do (
    for %%b in ("%%~dpna") do if [%%~xb]==[] XCOPY /F /Y "%%~a" "%copyPath%\"
    )
PAUSE
EXIT

Mais recursos

  • Para
  • Substituições variáveis (FOR /?)

    In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:

    %~I         - expands %I removing any surrounding quotes (")
    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    
  • Se

  • XCOPY
por 23.08.2018 / 12:35