1

接尾辞が付いたファイルが1000個-PRO1あり-PPR2(それぞれ1000個)、同じ名前で接尾辞が付いていないフォルダーが1000個あります...

たとえば、というフォルダAbstract_Colorfulがあり、ファイルAbstract_Colorful-PRO1などがありますAbstract_Colorful-PPR2...

すべてのファイルを自動的に移動できるようにバッチを作成したいのですが、このコードがあります(別の投稿から)

@echo off 
setlocal enabledelayedexpansion
pushd "C:\Folders\"
for %%a in (*) do (
  set fldr=%%~na
  set fldr=!fldr:~0,4!
  md "!fldr!"
  move "%%a" "!fldr!"
)
popd
pause
exit

しかし、ファイルに4文字を超える場合は、最初の4文字のフォルダーが作成されます...私がやりたいのは、バッチがファイル名を認識し、で停止し-てフォルダーに移動することです...

御時間ありがとうございます :)

4

1 に答える 1

1
@echo off
pushd "C:\Folders"
rem Process all files in this folder separating the names at "-"
for /F "tokens=1* delims=-" %%a in ('dir /B *.*') do (
   rem At this point %%a have the name before the "-" and %%b the rest after "-"
   rem Create the folder, if not exists
   if not exist "%%a" md "%%a"
   rem Move the file there
   move "%%a-%%b" "%%a"
)
popd
于 2013-01-23T01:16:34.287 に答える