
Estoy intentando mover carpetas a carpetas nuevas según la última parte de su nombre. El delimitador es un guión bajo. El número de guiones bajos en los nombres de las carpetas varía enormemente. Encontré un código que usa la primera parte del nombre, pero no sé cómo hacer que use la última parte del nombre. En awk sería algo así como awk -F'_' {Imprimir $NF}.
@echo off
FOR /D %%G IN (*) DO (
FOR /F "delims=_" %%H IN ("%%~G") DO (
MD "%%~H" 2>nul
MOVE "%%~G" "%%~H"
)
)
Editado para agregar ejemplos:
Folder_01 -> md (if necessary) and move into folder "01"
Folder_02 -> md (if necessary) and move into folder "02"
weird_folder_name_a2d -> md (if necessary) and move into folder "a2d"
Respuesta1
Respuesta2
Esta es la forma más sencilla de hacerlo, utilizando Linux o WSL:
find . -maxdepth 1 -type d -exec perl -e '$a="\Q@ARGV"; $a =~ /([^_]+$)/; `mkdir -p $1 && mv $a $1`' "{}" \;
Tomado de:https://askubuntu.com/a/538270