Tipos de arquivos desconhecidos de cópia recursiva do Windows Explorer

0

Eu estou tentando mover todos os arquivos (vários tipos diferentes de arquivos, potencialmente) de um único diretório raiz e todas as pastas aninhadas dentro da raiz. Poderia haver vários níveis diferentes de subdiretórios em cada ramificação da árvore e eu preciso pegar todos os arquivos em cada nível sem saber com antecedência quantos níveis pode haver. Com toda a honestidade, eu realmente não tentei nada ainda. No passado, eu poderia ter escrito algo curto e doce em Python, mas gostaria de fazer isso acontecer com um script de logon / logoff no PowerShell e não fazer do Python um pré-requisito. Eu sei muito menos do que deveria sobre PS; Se alguém puder, por favor, apontar-me na direção geral de uma solução Powershell ou, na verdade, qualquer coisa que seja minimamente invasiva, fico mais do que feliz em fazer qualquer pesquisa necessária para realizá-la. Eu só preciso de um empurrão na direção certa. Qualquer ajuda é muito apreciada; Eu sei que este é um pedido muito incomum.

    
por 3xStampA2xStamp 31.01.2015 / 06:20

2 respostas

0

Basta fazer um script em lote (se quiser manter a estrutura do subdiretório)

A sintaxe é:

move "C:\path to\source folder\" "C:\path to\destination\"
pause

Eu incluí uma pausa para que você possa verificar se foi movido ou não, removê-lo se quiser que a janela feche automaticamente.

Exemplo (eu corri no Prompt de Comando):

C:\Users\Dev>move "C:\Users\Dev\Desktop\New folder\lol" "C:\Users\Dev\Desktop\Ne
w folder\lel"
        1 dir(s) moved.

Se você não estiver familiarizado com arquivos em lote, basta digitar um bloco de notas e salvá-lo como qualquer coisa.bat

Isso é muito mais simples que o powershell, e você pode colocar o script no diretório de inicialização sempre que fizer o login.

    
por 31.01.2015 / 06:53
0

Isso requer o PowerShell 3:

Get-ChildItem -Recurse -Path C:\SourceFolder -File | 
    % { Move-Item -WhatIf $_.FullName C:\DestFolder }

Observe o -WhatIf . Isso impedirá que o comando move seja realmente executado. Em vez disso, mostrará no console o que faria. Quando estiver satisfeito, ele fará o que quiser, você pode remover o -WhatIf e executá-lo para valer.

    
por 02.02.2015 / 06:28