【问题标题】:Put files automatically in folders将文件自动放入文件夹
【发布时间】:2013-12-02 12:43:13
【问题描述】:

我有成千上万的 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...

【问题讨论】:

  • 当然可以!哪个系统?哪种脚本语言...
  • 当然。编写一些代码从文件名中解析出路径元素。
  • 我的系统是windows XP prof SP3...

标签: sorting batch-file directory bulk


【解决方案1】:

在 Windows/dos 批处理文件中会这样。

语句%fp:~0,3% 确定文件名的哪一部分用作文件夹名。 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

【讨论】:

  • 我想我需要另一个例子来理解:它如何处理像这样命名的文件:abc001_01、abc001_02、abc001_03 等 - 我想把它们放在一个名为 001 的文件夹中?
  • 您只询问了 aaa/bbb/ccc 等问题。编辑您的问题以阐明您需要做什么。
  • 对不起,对我不起作用...它打开一个 DOS 窗口并且所有文件都在运行。但一切都没有动过……
  • 你删除了'echo'吗? echo 之后的文本将被执行,echo 用于调试目的
  • 好的,我已经删除了回声。现在它可以工作了,但它会创建文件的副本并将它们放入文件夹中......
【解决方案2】:

只需在 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2020-04-29
    • 2013-10-04
    • 2012-02-05
    • 2014-04-04
    • 1970-01-01
    相关资源
    最近更新 更多