将文件自动放入文件夹中

时间:2013-12-02 12:43:13

标签: sorting batch-file directory bulk

我有数以千计的JPG命名为“aaa0001.jpg,aaa0002.jpg,aaa0003.jpg, bbb0001.jpg,bbb0002.jpg,bbb0003.jpg,ccc0001.jpg,ccc0002.jpg,ccc0003.jpg等“在一个文件夹中。

我创建了26个文件夹,例如aaa,bbb,ccc,ddd等。

是否可以创建一个脚本来设置相应文件夹中的所有图像?

结果“aaa0001.jpg,aaa0002.jpg,aaa0003.jpg”到文件夹“aaa”, “bbb0001.jpg,bbb0002.jpg,bbb0003.jpg”到文件夹“bbb”等。

谢谢!

我的系统是Windows XP prof SP3 ...

2 个答案:

答案 0 :(得分:2)

在Windows / dos批处理文件中会出现这种情况。

语句%fp:~0,3%确定文件名的哪一部分用作foldername。 0,3表示:从第一个字符和下一个3个字符开始。 因此,名为aaa001-01.jpg的文件会提供aaa的文件夹 要将名为abc001_03.jpg的文件放入文件夹001,请将语句更改为%fp:~3,3%

for %%a in (*.jpg) do call :copyfile %%a
goto :eof

:copyfile
set fp=%1
set folder=%fp:~0,3%

rem remove echo on the next line...
echo copy "%1" "%folder%"
rem or for moving:   move /Y "%1" "%folder%"

goto :eof

答案 1 :(得分:0)

只需定义基本路径即可在VAR $path

中创建新闻目录
@echo off
setlocal EnableDelayedExpansion

:::The path where the new Directorys will bw created

set $path="c:\Image\"

for %%a in (*.jpg) do (set $file="%%a"
                       set $Dir="%$path%CSV!$file:~4,3!"
                       if not exist "!$dir!" md "!$dir!"
                       move "!$file!" "!$dir!")

echo Terminated