
Я пытаюсь переместить папки в новые папки на основе последней части их имени. Разделитель — подчеркивание. Количество подчеркиваний в именах папок сильно различается. Я нашел код, который использует первую часть имени, но не могу понять, как заставить его использовать последнюю часть имени. В awk это будет что-то вроде awk -F'_' {Print $NF}.
@echo off
FOR /D %%G IN (*) DO (
FOR /F "delims=_" %%H IN ("%%~G") DO (
MD "%%~H" 2>nul
MOVE "%%~G" "%%~H"
)
)
Отредактировано для добавления примеров:
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"
решение1
решение2
Вот самый простой способ сделать это с использованием Linux или WSL:
find . -maxdepth 1 -type d -exec perl -e '$a="\Q@ARGV"; $a =~ /([^_]+$)/; `mkdir -p $1 && mv $a $1`' "{}" \;
Взято из:https://askubuntu.com/a/538270