漫潮者,私有云,NAS,新媒体电商.软件开发,商乾
标题:
群晖升级DSM7后Photo Station和Synology Moments迁移Synology Photos工具
[打印本页]
作者:
游侠
时间:
2024-4-9 17:27
标题:
群晖升级DSM7后Photo Station和Synology Moments迁移Synology Photos工具
群晖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 目录结构进行迁移,支持本机迁移和两台机器间迁移的
重新修改了下,增加重复文件自动处理逻辑,同时可以显示已处理了文件数
(, 下载次数: 0)
上传
点击文件名下载附件
(, 下载次数: 0)
上传
点击文件名下载附件
@echo off
chcp 65001
setlocal enabledelayedexpansion
echo 如不当操作造成文件丢失,本人概不负责
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 [1] 移动文件,不保留源,速度快些
echo [2] 复制文件,保留源,速度慢些
set /p "operation=请输入操作编号(1 或 2): "
echo.
echo 当遇到重复文件时,请选择操作:
echo [1] 覆盖目标文件
echo [2] 跳过目标文件
echo [3] 自动重命名
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
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
(, 下载次数: 0)
上传
点击文件名下载附件
[mw_shl_code=bash,false]
欢迎光临 漫潮者,私有云,NAS,新媒体电商.软件开发,商乾 (https://www.aurrel.com/)
Powered by Discuz! X3.4