实际只需要一个命令:
mklink /J "old_path" "New_path"
bat程序来自CHH的大佬hyes。
以下是bat内容,后附bat直接下载。
@echo off setlocal EnableDelayedExpansion PUSHD %~DP0 %1 %2 mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof :runas :atbg color 0F @echo. @echo. @echo --- 修改iTunes的iPhone备份位置 (Windows10 Tested) ver1.0 by g.d. 2022-09-12 --- @echo. @echo 实质一个命令 mklink /J "old_path" "New_path"。 @echo. @echo 下面的程序会啰啰嗦嗦的。大佬请无视此程序。 @echo. @echo. pause @echo. :ag cls @echo. color 0F TITLE " --- 修改iTunes的iPhone备份位置 (Windows10 Tested) ver1.0 by g.d. 2022-09-12 --- " @echo. @echo --- 修改iTunes的iPhone备份位置 (Windows10 Tested) ver1.0 by g.d. 2022-09-12 --- @echo. @echo PS: (请仔细阅读以下注意事项) @echo. @echo. @echo 1、此程序会使用系统管理员权限运行,如有不合适,请终止程序--右上角x或者control c; @echo. @echo 2、首次安装iTunes后,需要要先运行一下iTunes; @echo. @echo 2、此程序会结束运行的iTunes程序,如有备份或还原等操作在进行,请终止程序--右上角x或者control c; @echo. @echo 3、不建议将iPhone备份位置更改为USB或移动硬盘等外部存储驱动器,这会损坏备份文件并在还原iPhone时引起问题; @echo. @echo 4、Windows 10中iPhone备份的默认位置会有所不同,具体取决于计算机上安装iTunes的方式。 @echo - 如果从Windows应用商店安装了iTunes,则iPhone备份将位于 [%USERPROFILE%\Apple\MobileSync]。 @echo - 如果iTunes是从Windows Store之外部的独立安装程序安装的, @echo 则iPhone的默认备份位置是 [%USERPROFILE%\AppData\Roaming\Apple Computer\MobileSync] 。 @echo. @echo. pause @echo. :mdnpatch set Npath=D:\iTunes_BakNEW set Npathchk=D:\iTunes_BakNEW echo. echo 此程序默认新备份路径路径为 "D:\iTunes_Backup" echo. echo (请根据默认路径所在盘符剩余空间大小以及使用习惯决定新备份路径...) @echo. @echo. echo - A 若直接使用程序默认路径,请直接回车键; @echo. set /P Npath=- B 或输入、粘贴想要自定义的新备份路径 echo. @echo. echo 设置了新备份路径路径为"%Npath%" @echo. set /P Npathchk=-- 请重复一次新备份路径的路径。 ~默认路径请直接回车; ~自定义路径请直接输入、粘贴路径。 @echo. if /i "%Npath%" == "%Npathchk%" ( @echo. echo 确定新备份路径路径为"%Npath%" @echo. @echo. @echo 继续... @echo. goto wtkillits echo. ) else ( color 4F echo 两次路径不一致 pause goto ag ) :wtkillits echo. echo. =-=-=-=-= 是否结束itune程序? =-=-=-=-= echo. echo. 1 结束itune程序; echo. echo. 2 不结束itune程序。 echo. echo. echo. 请输入选择项目的序号,并回车: set /p kiili= if "%kiili%"=="1" goto killitunes if "%kiili%"=="2" goto chkori echo. ehco 输入错误 pause goto wtkillits :killitunes echo. echo 结束itune程序... echo. @taskkill /f /im "iTunes.exe" :chkori echo. echo. echo 检查iTunes原始备份路径... echo. if exist "%USERPROFILE%\Apple\MobileSync" ( echo 存在原始iPhone备份路径 [%USERPROFILE%\Apple\MobileSync] echo. echo 所安装的iTunes可能是windows商店版 echo. ) else ( echo 不存在原始iPhone备份路径 [%USERPROFILE%\Apple\MobileSync] echo. ) echo. if exist "%USERPROFILE%\AppData\Roaming\Apple Computer\MobileSync" ( echo 存在原始iPhone备份路径 [%USERPROFILE%\AppData\Roaming\Apple Computer\MobileSync] echo. echo 所安装的iTunes可能是独立安装版 echo.) else ( echo 不存在原始iPhone备份路径 [%USERPROFILE%\AppData\Roaming\Apple Computer\MobileSync] echo.) :setori echo. echo =-=-=-=-= 请根据以上结果确定iTunes的iPhone原始备份路径。=-=-=-=-= echo. echo. echo. 1 iTunes是windows商店安装的,原备份始路径为[%USERPROFILE%\Apple\MobileSync] ; echo. echo. 2 iTunes是外部的独立安装程序版,原始备份路径为[%USERPROFILE%\AppData\Roaming\Apple Computer\MobileSync]。 echo. echo. 3 手动输入原始备份路径。 echo. echo. echo. 请输入选择项目的序号,并回车: echo. set /p mmits= if "%mmits%"=="1" goto winitunes if "%mmits%"=="2" goto mmitunes if "%mmits%"=="3" goto mmoriph echo. ehco 输入错误 pause goto chkori :winitunes set "oripath=%USERPROFILE%\Apple\MobileSync" echo. echo 已设置原备份始路径为[%USERPROFILE%\Apple\MobileSync] echo. goto bkorifiles :mmitunes set "oripath=%USERPROFILE%\AppData\Roaming\Apple Computer\MobileSync" echo. echo 已设置原备份始路径为[%USERPROFILE%\AppData\Roaming\Apple Computer\MobileSync] echo. goto bkorifiles :mmoriph set /P oripath=请手动输入原始备份路径,不用加引号 set /P Reoripath=请重复一次原始备份路径。不用加引号。 if /i "%oripath%" == "%Reoripath%" ( echo 确定原始备份路径路径为"%oripath%" @echo. @echo 继续... goto bkorifiles echo. ) else ( color 4F echo 两次输入的原始备份路径路径不一致 pause goto chkori ) :bkorifiles REM color 0E echo. MD "%Npath%\Backup" echo. echo. echo =-=-=-=-= 是否复制现有备份文件到新路径? 建议中止此程序自行复制。 =-=-=-=-= echo. echo. 1 复制。备份文件较大时,复制到新路径可能需要相当长时间且会占用新路径所在盘符空间; echo. echo. 2 不复制,直接下一步。 echo. echo. echo. 请输入选择项目的序号,并回车: echo. set /p cpold= if "%cpold%"=="1" goto bakold if "%cpold%"=="2" goto rnori echo. ehco 输入错误 pause goto bkorifiles :bakold echo. echo 确定复制现有备份文件到新路径? echo. pause xcopy "%oripath%\Backup" "%Npath%\Backup" /E /K /O /Y if %ERRORLEVEl% == 0 ( echo. echo 成功备份原备份文件。 goto rnori rem taskkill /f /im explorer.exe & start explorer.exe ) else ( rem RD /S /Q "%Npath%\Backup" rem ren "%Npath%" "%Npath%.bak%date:~3,1%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%" echo 备份原备份文件失败,请尝试重新运行... goto bkorifiles ) :rnori set "ch=%time:~0,2%" set "ch=%ch: =0%" set "ctd=%date:~0,4%%date:~5,2%%date:~8,2%%ch%%time:~3,2%%time:~6,2%" rem taskkill /f /im explorer.exe & start explorer.exe if exist "%oripath%" ( echo. echo 存在原始备份文件夹 "%oripath%",将要重命名... ) else ( rem RD /S /Q "%Npath%\Backup" echo. echo 原始路径不存在。是否直接 修改备份路径 / 创建iTunes备份路径的软联接 ? echo. pause goto crlink ) ren "%oripath%" "MobileSync.bak%ctd%" if %ERRORLEVEl% == 0 ( echo. echo 原始路径被重命名为[%oripath%.bak%ctd%]。 goto crlink rem taskkill /f /im explorer.exe & start explorer.exe ) else ( rem RD /S /Q "%Npath%\Backup" echo. echo 原始路径重命名失败... echo. echo 请尝试关闭打开的原始路径相关的文件或文件夹,或者重启资源管理器、重启电脑后重新运行此程序... echo. echo. pause goto rnori ) :crlink rem echo on echo. echo 创建文件夹 "%oripath%" echo. MD "%oripath%" echo. mklink /J "%oripath%\Backup" "%Npath%\Backup" if %ERRORLEVEl% == 0 ( echo. echo 成功修改备份路径。 echo. goto ending rem taskkill /f /im explorer.exe & start explorer.exe ) else ( rem RD /S /Q "%Npath%\Backup" rem ren "%Npath%" "%Npath%.bak%date:~3,1%%date:~5,2%%date:~8,2%%time:~0,1%%time:~3,2%%time:~6,2%" echo. echo 修改备份路径失败,请尝试重新运行... pause goto crlink ) :ending echo 将打开原始备份路径与新路径... echo. start explorer "%oripath%" @echo off | ping 127.0.0.1 -n 2 >nul start explorer "%Npath%" echo. echo Closing in 5 Seconds... @echo off | ping 127.0.0.1 -n 6 >nul rem exit echo. pause