Precisa ser o lote do Windows? Se não, neste tópico é uma solução do Powershell, bem como algum código de lote.
Powershell:
Get-ChildItem SomeFolder | Get-Random -Count $x | Copy-Item -Destination SomeOtherFolder
Isso pressupõe que você execute o script a partir da pasta em que seus arquivos residem. Substitua SomeFolder por um caminho para seus arquivos e SomeOtherFolder com o destino desejado.
Para explicar um pouco mais:
Get-ChildItem -Path C:\path\to\directory # Lists content of the directory
# To get subfolders you have to add -Recurse
# to limit this only to files add -Files
Get-Random -Count $x # Selects x random items from previous command.
# You have to define $x beforehand
Copy-Item -Destination C:\path\to\destination # Copies the random selected files to
# your defined destination
Você pode copiar este código em um arquivo de texto, salvá-lo como * .ps1 e clicar com o botão direito do mouse executar com o powershell .
Eu posso ser possível que o powershell envie um erro como o script não pode ser carregado porque a execução de scripts está desativada neste sistema .
Se esse for o caso, você deve iniciar o PowerShell como administrador e executar Set-ExecutionPolicy RemoteSigned
Nota:
Outra desvantagem que encontrei durante o teste é que Get-Random
poderia obter o mesmo item mais de uma vez. Prova
Para evitar isso, eu recomendo o comando Get-Unique
.