Tipos de archivos desconocidos de copia recursiva del Explorador de Windows

0

Estoy intentando mover todos los archivos (potencialmente varios tipos de archivos) desde un único directorio raíz y todas las carpetas anidadas dentro de la raíz. Podría haber varios niveles diferentes de subdirectorios dentro de cada rama del árbol y necesito capturar cada archivo en cada nivel sin saber de antemano cuántos niveles puede haber. Sinceramente, no he intentado nada todavía. En el pasado, podría haber escrito algo breve y dulce en Python, pero me gustaría que esto sucediera con un script de inicio / cierre de sesión en PowerShell y no hacer de Python un requisito previo. Sé mucho menos de lo que debería sobre PS; Si alguien podría indicarme la dirección general de una solución Powershell, o realmente cualquier cosa que sea mínimamente invasiva, estoy más que feliz de hacer cualquier investigación necesaria para lograrlo. Solo necesito un codazo en la dirección correcta. Cualquier ayuda es muy apreciada; Sé que esta es una petición muy inusual.

3xStampA2xStamp
fuente

Respuestas:

0

Simplemente haga un script por lotes (si desea conservar la estructura del subdirectorio)

La sintaxis es:

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

He incluido una pausa para que pueda verificar si se ha movido o no, eliminarla si desea que la ventana se cierre automáticamente.

Ejemplo (lo ejecuté en el símbolo del sistema):

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

Si no está familiarizado con los archivos por lotes, simplemente escriba un bloc de notas y guárdelo como cualquier cosa.

Esto es mucho más simple que powershell, y puede poner la secuencia de comandos en el directorio de inicio cada vez que inicie sesión.

poiasd
fuente
Gracias, EMINEM, realmente aprecio los comentarios. No soy mucho de una persona CLI en general. En realidad no quiero conservar la estructura de carpetas original. Idealmente, esta secuencia de comandos movería todos los archivos anidados a un gran repositorio, independientemente de la profundidad del archivo original en la estructura del archivo.
3xStampA2xStamp
Si intento poner esto en pseudocódigo, se parece a esto: mkdir C: \ HoldingPen
3xStampA2xStamp
0

Esto requiere PowerShell 3:

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

Nota la -WhatIf. Esto evitará que el comando de movimiento se ejecute realmente. En cambio, mostrará en la consola lo que haría. Una vez que esté satisfecho, hará lo que quiera, puede eliminar el -WhatIf y ejecutarlo de verdad.

dangph
fuente
También puedes usar -Confirm en este caso.
meatspace