Use o comando move
com os argumentos apropriados:
move *-2.jpg c:\somefolder
Uma lista de fotos coloridas de Hatton1.jpg
a Hatton72.jpg
de cada foto tem uma foto em preto e branco idêntica chamada Hatton1-2.jpg
a Hatton72-2.jpg
Existe uma maneira de remover os arquivos -2 para um diretório separado?
Use o comando move
com os argumentos apropriados:
move *-2.jpg c:\somefolder
Isso é um pouco complicado, devido a nomes de arquivos curtos: -
*~N.???
, em que *
é o início do nome do arquivo e N
é um número inteiro (onde há poucos conflitos) - consulte dir /x
. *~2.*
encontrará alguns desses nomes abreviados, bem como os arquivos que você deseja, com *~2.*
no nome longo. Em cmd
, vá para o diretório com os arquivos: você pode listar os que deseja mover:
dir /b | findstr "~2.jpg"
Idealmente, você deve ser capaz de usar:
for /f %f in ('dir /b | findstr "~2.jpg"') do move "%f" NewDirPath
Infelizmente, mais uma vez, você não pode usar um pipe em um comando incorporado em um loop for
, portanto, é necessário usar dois comandos (ou três para remover o arquivo temporário):
dir /b > Files.lst
for /f %f in ('findstr "~2.jpg" Files.txt') do move "%f" NewDirPath
del Files.lst
Não é uma solução muito elegante, mas você provavelmente só está fazendo isso uma vez. Se você precisar fazer isso repetidamente, coloque os comandos em um arquivo de lote e certifique-se de dobrar o %
na variável de loop:
...
for /f %%f in ('findstr "~2.jpg" Files.txt') do move "%%f" NewDirPath
...
Usando o PowerShell, você pode usar Get-ChildItem
juntamente com Move-item
.
Seria algo parecido com isto:
Get-ChildItem -Filter '*-2.jpg' -Recurse | %{Move-Item $_ C:\Target}
Eu não testei esse código, mas ele deve ser muito semelhante. Usar apenas a pesquisa normal do Windows e arrastar os arquivos provavelmente também funcionaria.