群晖升级DSM7后Photo Station和Synology Moments迁移Synology Photos工具
本帖最后由 kanglehao 于 2024-3-28 16:32 编辑群晖NAS从DSM6 升级到DSM 7后,无法自动移动Moments和photo照片到新的Synology Photos。
要解决这个问题,虽然可以将/home/Drive/Moments和\home\photo目录分别移动到/home/Photos下,Synology Photos可以正常检索和索引 ,但是目录存储结构差别很大,
具体如下:
DSM6:
photo的 目录结构是\\DSM918\photo
Moments 目录结构是 \\DSM918\home\用户\drive\Moments\照相设备\年\月\日
DSM7:
Synology Photos 目录结构是 \\DSM918\home\Photos\PhotoLibrary\年\月
直接拷贝会导致存储混乱,强迫症受不了,所以写了这个工具,
可以一键迁移照片并根据照片时间自动按照Synology Photos 目录结构进行迁移,支持本机迁移和两台机器间迁移的
重新修改了下,增加重复文件自动处理逻辑,同时可以显示已处理了文件数
代码如下,保存为bat文件,或者直接下载
@echo off
chcp 65001
setlocal enabledelayedexpansion
echo 本代码自52pojie论坛发布共享,需要的可随意自取,转载注明出处,如不当操作造成文件丢失,本人概不负责
echo 使用提示:可以先将群晖文件夹映射为本地磁盘或目录后进行操作,当然也可以用网络路径直接操作
echo 迁移Photo Station,则源文件夹路径“\\DSM918\photo , 例如映射为 Y:\"
echo 迁移 Synology Moments ,则源文件夹"\\DSM918\home\Drive\Moments, 例如映射为 Y:\"
echo 目标Photo Station,文件夹如无意外是"\\DSM918\home\Photos\PhotoLibrary 例如映射为 Z:\"
set "default_source_dir=D:\Meitu\52ffmpegCheckVedio"
set "default_dest_dir=D:\Meitu\52"
echo 请输入源文件夹路径或直接按回车键使用默认路径[%default_source_dir%]:
set /p "source_dir=源文件夹: "
if "!source_dir!"=="" set "source_dir=!default_source_dir!"
echo 请输入目标文件夹路径或直接按回车键使用默认路径[%default_dest_dir%]:
set /p "dest_dir=目标文件夹: "
if "!dest_dir!"=="" set "dest_dir=!default_dest_dir!"
if not exist "!dest_dir!" mkdir "!dest_dir!"
echo.
echo 请选择操作类型:
echo 移动文件,不保留源,速度快些
echo 复制文件,保留源,速度慢些
set /p "operation=请输入操作编号(1 或 2): "
echo.
echo 当遇到重复文件时,请选择操作:
echo 覆盖目标文件
echo 跳过目标文件
echo 自动重命名
set /p "duplicate=请输入操作编号(1 或 2或 3): "
set "account=1"
::For主程序
for /f "delims=" %%a in ('dir /a-d/s/b "!source_dir!"') do (
set /a "account+=1"
set "file_name=%%~nxa"
set "file_na=%%~na"
set "file_extension=%%~xa"
set "file_path=%%~dpfa"
set "file_modify_time=%%~ta"
set "year=!file_modify_time:~0,4!"
set "month=!file_modify_time:~5,2!"
set "new_path=!dest_dir!\!year!\!month!\"
set "counter=1"
set "new_file_name=!file_na!!file_extension!"
if not exist "!new_path!" mkdir "!new_path!"
if "!operation!"=="1" (
if "!duplicate!"=="1" (
echo 移动并覆盖第!account!个文件!file_name!到:!new_path!
move /Y "!file_path!" "!new_path!"
) else if "!duplicate!"=="2" (
echo 文件存在,跳过第!account!个文件:!file_name!
if not exist "!new_path!\!file_name!" (
echo 移动文件!file_name!到:!new_path!
move "!file_path!" "!new_path!"
)
) else if "!duplicate!"=="3" (
call :rename_file_move
)
) else if "!operation!"=="2" (
if "!duplicate!"=="1" (
echo 复制并覆盖第!account!个文件!file_name!到:!new_path!
xcopy /Y "!file_path!" "!new_path!"
) else if "!duplicate!"=="2" (
echo 文件存在,跳过第!account!个文件:!file_name!
if not exist "!new_path!\!file_name!" (
echo 复制文件!file_name!到:!new_path!
xcopy "!file_path!" "!new_path!"
)
) else if "!duplicate!"=="3" (
call :rename_file_copy
)
)
)
echo 已处理!account!个文件,按任意键退出!
pause
::goto子程序,直接放入for中会导致程序直接终止
:rename_file_move
::echo 1file_na:!file_na! 2file_extension:!file_extension! 3counter:!counter! 4new_path:!new_path! 5file_path:!file_path! 6new_file_name:!new_file_name!"
if exist "!new_path!!new_file_name!" (
echo 存在重复文件!new_file_name!
set "new_file_name=!file_na!_!counter!!file_extension!"
echo 重命名源文件: !file_name! to !new_file_name!
set /a "counter+=1"
goto :rename_file_move
)
echo 已移动第!account!个!file_path!到!new_path!\!new_file_name!
move "!file_path!" "!new_path!!new_file_name!"
goto :eof
:rename_file_copy
::echo 1file_na:!file_na! 2file_extension:!file_extension! 3counter:!counter! 4new_path:!new_path! 5file_path:!file_path! 6new_file_name:!new_file_name!"
if exist "!new_path!!new_file_name!" (
echo 存在重复文件!new_file_name!
set "new_file_name=!file_na!_!counter!!file_extension!"
echo 重命名源文件: !file_name! to !new_file_name!
set /a "counter+=1"
goto :rename_file_copy
)
echo 已复制第!account!个!file_path!到!new_path!\!new_file_name!
copy /Y "!file_path!" "!new_path!\!new_file_name!"
goto :eof
文件下载: 多谢楼主!
正在使用。一直因为迁移照片方式没解决保持6.2没升级。现在决定升级了。
就是执行速度有点慢,差不多24小时了,显示只整理了5万多文件。查看空间,还多得很。{:1_925:}
好在我用PVE上的WIN10在执行,不用管,随他呗。再次谢谢楼主! laok518 发表于 2024-3-31 21:34
黑裙正好近期有在考虑从6升级到7的,多谢分享了
恩欢迎使用 部分提示信息写错了 懒得改了 不影响功能你可以先用本地文件夹试试 一、本版块仅限分享编程技术和源码相关内容,发布帖子必须带上关键代码和具体功能介绍【20220924强制执行】,详见『代码插入规范』。
代码不多直接把内容贴出来吧。 Hmily 发表于 2024-3-28 16:13
代码不多直接把内容贴出来吧。
好的老大,没在这个板块发过贴,审核大大帮我移过来的,我来编辑贴上代码:Dweeqw 可以再加个创建软链接的选项,就当是折中了 侃遍天下无二人 发表于 2024-3-29 11:29
可以再加个创建软链接的选项,就当是折中了
最近比较忙,等有时间再增加下,当然有大牛精通这块也可以帮忙补充:lol 黑裙正好近期有在考虑从6升级到7的,多谢分享了 使用了,拷贝成bat文件使用的,体验很好,完美把文件迁移过来了 laok518 发表于 2024-4-9 11:41
使用了,拷贝成bat文件使用的,体验很好,完美把文件迁移过来了
有帮助就好:Dweeqw 这个会影响照片按照时间轴排序吗
页:
[1]
2