用于根据文件名将文件移动到文件夹的批处理文件

时间:2015-10-23 14:52:42

标签: batch-file

我使用Dropbox自动将手机拍摄的所有照片/视频上传到“我的Dropbox \相机上传”文件夹。所以这里有很多文件:

2015-06-09 10.11.19.jpg

2015-09-11 09.28.46.mp4

我现在想要一个批处理文件将它们移动到正确的文件夹(如有必要,可以创建它)“.. \ Photos \ Family \ YYYY-MM”,其中YYYY-MM是照片的年份和月份(即文件名的前七个字符。)

(它必须是相对而非绝对路径,因为此Dropbox文件夹在具有XP,Vista和Windows 7操作系统的计算机之间共享,因此路径的第一部分在每个路径上都不同。)

我找到了类似的批处理文件并尝试对它们进行调整,但却无法让它工作。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用此脚本(将其放在扩展名为.bat的文件中)并启动它:

@echo off
setlocal enabledelayedexpansion
rem For each file in your folder
for %%a in (*.*) do (
    echo filename=%%a
    rem check if the it is not our script
    if "%%a" NEQ "%0" (
        set foldername=%%a
        set foldername=..\Photos\Family\!foldername:~0,7!
        echo foldername=!foldername!
        rem check if forlder exists, if not it is created
        if not exist "!foldername!" mkdir "!foldername!"
        rem Move (or change to copy) the file to directory
        move "%%a" "!foldername!\"
    )
)