move-item ou copy-item e depois remove-item

0

Eu tenho uma lista de arquivos que desejo mover de uma pasta para outra e manter a estrutura de pastas no novo local por exemplo Eu tenho os seguintes arquivos 1.txt 2.txt 3.txt localizados da seguinte forma

c: \ 1 \ 1.txt
c: \ 2 \ 2.txt
c: \ 3 \ 3.txt

Gostaria de mover o item para d: \ 1 \ 1.txt e d: \ 2 \ 2.txt etc ...

Qual é a maneira simples de fazer isso? Eu tenho mais de 100k arquivos que precisam ser movidos de certas pastas no local original para outro local, mantendo a estrutura

Atualmente, tenho a lista dos itens que precisam ser movidos

    
por Der Hochstapler 29.04.2014 / 04:01

2 respostas

5

Certamente possível com alguma mágica do PowerShell, mas acho que a melhor coisa que você pode fazer é usar Robocopy para tal tarefa. Ele é construído para isso, super-rápido (multithread), tem muitos relatórios de erros e coisas embutidas, e não vai te decepcionar.

    
por 29.04.2014 / 07:13
1

Se você quer uma solução Powershell, pode tentar algo assim:

# Load folder structure into memory
$folder = "C:\"
$files = gci $folder -r  

# Loop through each file in the folder structure
foreach ($file in $files)
{
    # Declare new folder structure by name
    $newpath = ($file.path -replace "^.","D")  # Replace C with D

    # Create the folder if it doesn't exist
    if (!(test-path $newpath)) {mkdir $newpath -f}

    # Copy the file to the new path
    cp $file $newpath$file.name -force
}

Deve ser uma operação bastante eficiente, pois contém apenas alguns comandos simples.

    
por 29.04.2014 / 13:20