
名前の最後の部分に基づいて、フォルダーを新しいフォルダーに移動しようとしています。区切り文字はアンダースコアです。フォルダー名に含まれるアンダースコアの数は大きく異なります。名前の最初の部分を使用するコードは見つかりましたが、名前の最後の部分を使用する方法がわかりません。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`' "{}" \;