Arquivos do Autorename com nomes idênticos ao serem descartados no diretório

1

No Windows, como posso configurar um mecanismo para que, quando eu mover um arquivo para um diretório onde já exista um arquivo com o mesmo nome, o novo arquivo seja renomeado aleatoriamente (ou para < > .ext)?

Caso de uso: Estou navegando pelo cheezburger, arraste e solte uma imagem em uma pasta. Problema: todos eles são chamados i.chzbgr.jpg = > conflito. Windows oferece para substituir ou não mover, nem mesmo autorename ...

    
por McEnroe 27.05.2013 / 23:40

2 respostas

1

Não é uma solução perfeita, mas eu encontrei e modifiquei um script que monitora uma pasta para novos arquivos; quando ela detecta um novo arquivo, ela automaticamente renomeia com um número aleatório. Copie e cole o seguinte e salve-o como um arquivo .ps1. Execute-o a partir do console do powershell ou do cmd. (certifique-se de ativar a execução de sc scts).

$folder = 'Q:\Test\# Downloads'  # <-- Change as desired
$filter = '*.*'
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{
 IncludeSubdirectories = $false        
 NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}
$onCreated = Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
 $path = $Event.SourceEventArgs.FullPath
 $name = $Event.SourceEventArgs.Name
 #$changeType = $Event.SourceEventArgs.ChangeType
 #$timeStamp = $Event.TimeGenerated
 if( $name -imatch "stop")
 {
    Unregister-Event -SourceIdentifier FileCreated;
    write-host "Monitoring stopped.";
    Exit(0);
 }
 else
 {
    $count=$(Get-Random -minimum 1 -maximum 999999);
    $p = Split-Path "$path" -Parent;
    $newName = "$p\$count-$name"
    while(test-path $newName)
    {
        $count=$(Get-Random -minimum 1 -maximum 999999);
        $newName = "$p\$count-$name";
    }
    Move-Item $path -Destination $newName -Force -Verbose
 }
}

Adicionar um arquivo chamado "stop" à pasta interrompe o monitoramento.

    
por 28.05.2013 / 03:04
1

Eu sei que é um tópico de 3 anos, mas talvez alguém (como eu) ache isso útil.

  1. Crie uma pequena pasta como "

por 29.05.2016 / 00:38