:open
echo aa>r:\a.txt
if not exist "r:\a.txt" TIMEOUT /T 2 >nul&&goto :open
del /f /q "r:\a.txt" 2>nul
:Office
SET lnkone=C:\Program Files\Microsoft Office
set lnktwo=D:\Program Files\Microsoft Office & call :golink
SET lnkone=C:\Program Files\Microsoft Office 15
set lnktwo=D:\Program Files\Microsoft Office 15 & call :golink
exit
:golink
if not exist "%lnkone%" md "%lnkone%"
rmdir "%lnkone%" /s /q
if not exist "%lnktwo%" md "%lnktwo%"
MKLINK "%lnkone%" "%lnktwo%" /J
goto :eof
比如向日葵远程控制的自定义设置可以在open子脚本的下面加上
SET lnkone=C:\Users\Administrator\AppData\Roaming\Oray
set lnktwo=D:\Program Files\Roaming\Oray & call :golink
比如浏览器相关,选复制C:\Program Files (x86)\Microsoft到D:\Program Files\Microsoft
:Edge
set edgef=User Data
SET lnkone=C:\Program Files (x86)\Microsoft
set lnktwo=D:\Program Files\Microsoft & call :golink
SET lnkone=D:\Program Files\Microsoft\EdgeUpdate\Download
set lnktwo=R:\TEMP\EdgeTemp\Download & call :golink
SET lnkone=D:\Program Files\Microsoft\Edge\Temp
set lnktwo=R:\TEMP\EdgeTemp\Temp & call :golink
SET lnkone=C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data
set lnktwo=R:\TEMP\EdgeTemp\%edgef% & call :golink
if not exist "R:\TEMP\EdgeTemp\%edgef%\a.txt" xcopy "D:\Program Files\Microsoft\User Data\*.*" "R:\TEMP\EdgeTemp\%edgef%\" /s /e /y
:: 差分子文件变量
set "VHD1=A.vhdx"
set "VHD2=B.vhdx"
:: 父文件变量
set "BASE_VHD=23h2.vhdx"
:: 强制删除A.vhdx和B.vhdx(无论是否存在)
echo 正在清理旧文件...
if exist "!VHD1!" (
del /f /q "!VHD1!" >nul 2>&1
if not exist "!VHD1!" (echo ✅ 已删除 !VHD1!) else (echo ⚠️ 无法删除 !VHD1!,可能被占用)
)
if exist "!VHD2!" (
del /f /q "!VHD2!" >nul 2>&1
if not exist "!VHD2!" (echo ✅ 已删除 !VHD2!) else (echo ⚠️ 无法删除 !VHD2!,可能被占用)
)
echo.
:: 1. 获取当前目录
pushd %~dp0 & cd /d "%~dp0"
set "CUR_DIR=%cd%"
echo Current folder: %CUR_DIR%
echo VHD files to switch: %VHD1% ↔ %VHD2%
:: 2. 提取盘符和路径
set "DRIVE=%CUR_DIR:~0,2%"
set "REL_PATH=%CUR_DIR:~2%"
:: 3. 自动搜索VHD启动项ID
echo.
echo 正在自动搜索VHD启动项ID...
set "VHDX_ID="
set "in_vhd_entry=0"
:: 遍历bcdedit输出,提取包含"vhd"的启动项ID
for /f "tokens=1,* delims=:" %%a in ('bcdedit /enum /v 2^>nul') do (
:: 清理行首空格和特殊字符
set "line=%%a%%b"
set "line=!line: =!"
:: 检测到标识符行,提取ID
if "!line:~0,10!"=="identifier" (
set "current_id=!line:identifier=!"
set "current_id=!current_id:{=!" :: 移除左大括号
set "current_id=!current_id:}=!" :: 移除右大括号
set "current_id=!current_id:"=!" :: 移除引号
set "in_vhd_entry=0" :: 重置标记
)
:: 检测到包含"vhd"的行,标记为VHD启动项
echo "!line!" | findstr /i "vhd" >nul 2>&1
if !errorlevel! equ 0 (
set "in_vhd_entry=1"
)
:: 若在VHD启动项中且已获取ID,则确定为目标ID
if !in_vhd_entry! equ 1 if defined current_id (
set "VHDX_ID={!current_id!}"
goto :found_vhd_id :: 找到后退出循环
)
)
:found_vhd_id
:: 4. 构建路径
set "SUFFIX_DEVICE=,locate=custom:12000002"
set "SUFFIX_OSDEVICE=,locate=custom:22000002"
set "VHD1_DEV=vhd=[%DRIVE%]%REL_PATH%\%VHD1%%SUFFIX_DEVICE%"
set "VHD1_OS=vhd=[%DRIVE%]%REL_PATH%\%VHD1%%SUFFIX_OSDEVICE%"
set "VHD2_DEV=vhd=[%DRIVE%]%REL_PATH%\%VHD2%%SUFFIX_DEVICE%"
set "VHD2_OS=vhd=[%DRIVE%]%REL_PATH%\%VHD2%%SUFFIX_OSDEVICE%"
:: 5. 检测文件存在性(清理后应该都不存在)
set "VHD1_EXIST=0"
set "VHD2_EXIST=0"
if exist "%CUR_DIR%\%VHD1%" set "VHD1_EXIST=1"
if exist "%CUR_DIR%\%VHD2%" set "VHD2_EXIST=1"
:: 6. 显示检测结果
echo.
echo ==============================================
echo File Detection:
if %VHD1_EXIST% equ 1 (echo ✅ %VHD1% exists) else (echo ❌ %VHD1% not found)
if %VHD2_EXIST% equ 1 (echo ✅ %VHD2% exists) else (echo ❌ %VHD2% not found)
echo ==============================================
:: 7. 确定目标差分文件
set "TARGET="
set "NEW_DEV="
set "NEW_OS="
if %VHD1_EXIST% equ 1 (
set "TARGET=%VHD2%"
set "NEW_DEV=%VHD2_DEV%"
set "NEW_OS=%VHD2_OS%"
) else if %VHD2_EXIST% equ 1 (
set "TARGET=%VHD1%"
set "NEW_DEV=%VHD1_DEV%"
set "NEW_OS=%VHD1_OS%"
) else (
:: 当A和B都不存在时,默认使用A.vhdx
set "TARGET=%VHD1%"
set "NEW_DEV=%VHD1_DEV%"
set "NEW_OS=%VHD1_OS%"
echo 提示:所有文件均不存在,默认切换目标为 %TARGET%
)
我的微信基本不用留聊天记录之类的,因为手机里有,所以我下SETUP.CMD下加了
:WeChat
SET lnkone=E:\文档\xwechat_files
set lnktwo=D:\Program Files\Tencent\xwechat_files & call :golink
SET lnkone=D:\Program Files\Roaming\Tencent\xwechat\xplugin
set lnktwo=R:\TEMP\WeChat Files\xwechat\xplugin & call :golink
SET lnkone=D:\Program Files\Roaming\Tencent\xwechat\update
set lnktwo=R:\TEMP\WeChat Files\xwechat\update & call :golink
SET lnkone=D:\Program Files\Roaming\Tencent\xwechat\radium\cache
set lnktwo=R:\TEMP\WeChat Files\xwechat\radium\cache & call :golink
SET lnkone=D:\Program Files\Roaming\Tencent\xwechat\radium\WmpfCache
set lnktwo=R:\TEMP\WeChat Files\xwechat\radium\WmpfCache & call :golink
SET lnkone=D:\Program Files\Roaming\Tencent\xwechat\radium\xworker
set lnktwo=R:\TEMP\WeChat Files\xwechat\radium\xworker & call :golink
SET lnkone=D:\Program Files\Tencent\xwechat_files\wxid_a8q9ggqek08521_76fc\cache
set lnktwo=R:\TEMP\WeChat Files\\xwechat_files\wxid_a8q9ggqek08521_76fc\cache & call :golink
SET lnkone=D:\Program Files\Tencent\xwechat_files\wxid_a8q9ggqek08521_76fc\temp
set lnktwo=R:\TEMP\WeChat Files\\xwechat_files\wxid_a8q9ggqek08521_76fc\temp & call :golink
SET lnkone=D:\Program Files\Tencent\xwechat_files\wxid_a8q9ggqek08521_76fc\db_storage
set lnktwo=R:\TEMP\WeChat Files\\xwechat_files\wxid_a8q9ggqek08521_76fc\db_storage & call :golink
SET lnkone=D:\Program Files\Tencent\xwechat_files\wxid_a8q9ggqek08521_76fc\msg
set lnktwo=R:\TEMP\WeChat Files\xwechat_files\wxid_a8q9ggqek08521_76fc\msg & call :golink
SET lnkone=D:\Program Files\Tencent\xwechat_files\WMPF
set lnktwo=R:\TEMP\WeChat Files\\xwechat_files\WMPF & call :golink
SET lnkone=D:\Program Files\Tencent\xwechat_files\Backup
set lnktwo=R:\TEMP\WeChat Files\xwechat_files\Backup & call :golink