Eu tenho um diretório com milhares de arquivos nomeados como número .jpg (ex: 100152.jpg
, 100153.jpg
). Não quero copiar tudo neste diretório - apenas os arquivos com o nome exato como os nomes em uma lista de arquivos de texto que eu criei.
Existem cerca de 36k nomes nesta lista mais curta - desejo copiar todos os arquivos no diretório grande com os mesmos nomes que os da lista em uma pasta separada.
Como eu seria capaz de fazer isso sem ir um a um em um sistema Windows ?
windows
batch-file
file-transfer
Andrew Zhang
fonte
fonte
Respostas:
Você pode usar um FOR / F e referenciar o caminho completo da lista de arquivos, como mostrado abaixo.
Isso essencialmente lerá cada linha da lista de arquivos para a qual você aponta, linha por linha e itera o valor retornado (conteúdo de cada linha) ao comando XCOPY para processar adequadamente.
Sintaxe da linha de comando
Sintaxe de script em lote
Recursos adicionais
fonte
Eu usaria a
bash
qualquer momento.Ou, desde que eu tenho vindo a preferir
parallel
maisxargs
:No Windows, eu usaria o cygwin , mas você pode considerar cmder , Git-for-Windows , WSL e mais ...
Mas você pode fazer isso com a mesma facilidade em
Powershell
:Aparentemente, a Microsoft deseja que uma determinada categoria de usuários se sinta à vontade usando o Powershell, porque reconhece vários comandos conhecidos do mundo UNIX. Esses são apenas aliases para os cmdlets equivalentes e uma lista pode ser encontrada invocando
Get-Alias
(ou simplesmentealias
se você preferir):fonte