无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3884|回复: 33
打印 上一主题 下一主题

[分享] 带参数运行自动移动用户文件夹

    [复制链接]
跳转到指定楼层
1#
发表于 2024-3-13 18:24:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wxinchun92 于 2025-6-28 22:43 编辑

原帖批处理迁移系统用户文件夹位置 - 综合讨论区 - 无忧启动论坛 - Powered by Discuz! (wuyou.net)

2025/6/28
修复无法手动更改驱动器问题

感谢Neko提供支持

适用于win7及以上
纠正部分路径错误
增加自动运行


  1. @echo off
  2. title 移动目标文件夹位置向导 by chishingchan
  3. SETLOCAL ENABLEDELAYEDEXPANSION
  4. set drive=.
  5. set choice=.
  6. set Name=
  7. for /f "tokens=6 delims=[]. " %%i in ('ver') do set winbuild=%%i
  8. if %winbuild% LSS 7600 mshta vbscript:CreateObject("Wscript.Shell").popup("仅支持 Windows 7及以上的系统运行!",5,"提示",64)(window.close)&&exit
  9. set _NCS=1
  10. if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 %nul2% | find /i "0x0" %nul1% && (set _NCS=0)
  11. if %_NCS% EQU 1 call :_colorprep
  12. if "%1"=="/?" goto help
  13. if /i "%1"=="/h" goto help
  14. if %winbuild% GEQ 16299 set doj=1
  15. set regg=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer

  16. set "_work=%~dp0"
  17. if "%_work:~-1%"=="" set "_work=%_work:~0,-1%"
  18. for /f "tokens=2*" %%a in ('REG QUERY "%regg%\Shell Folders" /v "Desktop"') do set Current_Desktop=%%b
  19. if %Current_Desktop% EQU %_work% mshta vbscript:CreateObject("Wscript.Shell").popup("请勿在桌面运行此脚本!",5,"提示",64)(window.close)&&exit

  20. for /f "tokens=3" %%i in ('powershell Get-WmiObject -Class Win32_LogicalDisk ^| findstr "DeviceID"') do if not %%i==%SystemDrive% set Name=%%i !Name!
  21. set choice=!Name!
  22. for %%i in (%choice%) do if exist %%i\nul if not exist "%%i\Windows\explorer.exe" set drive=%%i
  23. if "%drive%"=="." mshta vbscript:CreateObject("Wscript.Shell").popup("没有发现可用驱动器!",4,"错误",64)(window.close)&&exit

  24. set CopyFile=N
  25. set DelFile=N
  26. if "%2" NEQ "" call :config %2
  27. set HP=\Users\%USERNAME%
  28. if /i "%1"=="/u" goto default

  29. echo 正在检测系统,请稍候...
  30. for /f "tokens=2*" %%a in ('REG QUERY "%regg%\Shell Folders" /v "{4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}"') do set Current_Saved_Games=%%b
  31. for /f "tokens=2*" %%a in ('REG QUERY "%regg%\Shell Folders" /v "{56784854-C6CB-462B-8169-88E350ACB882}"') do set Current_Contacts=%%b
  32. for /f "tokens=2*" %%a in ('REG QUERY "%regg%\Shell Folders" /v "{BFB9D5E0-C6A9-404C-B2B2-AE6DB6AF4968}"') do set Current_Links=%%b
  33. for /f "tokens=2*" %%a in ('REG QUERY "%regg%\Shell Folders" /v "{7D1D3A04-DEBB-4115-95CF-2F29DA2920DA}"') do set Current_Searches=%%b
  34. for /f "tokens=2*" %%a in ('REG QUERY "%regg%\Shell Folders" /v "Favorites"') do set Current_Favorites=%%b
  35. for /f "tokens=3*" %%a in ('REG QUERY "%regg%\Shell Folders" /v "My Video"') do set Current_My_Video=%%b
  36. for /f "tokens=3*" %%a in ('REG QUERY "%regg%\Shell Folders" /v "My Pictures"') do set Current_My_Pictures=%%b
  37. for /f "tokens=2*" %%a in ('REG QUERY "%regg%\Shell Folders" /v "Personal"') do set Current_Personal=%%b
  38. for /f "tokens=3*" %%a in ('REG QUERY "%regg%\Shell Folders" /v "My Music"') do set Current_My_Music=%%b
  39. for /f "tokens=2*" %%a in ('REG QUERY "%regg%\Shell Folders" /v "{374DE290-123F-4565-9164-39C4925E467B}"') do set Current_Downloads=%%b
  40. if defined doj (
  41.     for /f "skip=2 tokens=2*" %%a in ('REG QUERY "%regg%\User Shell Folders" /v "{31C0DD25-9439-4F12-BF41-7FF4EDA38722}"') do set Current_Objects=%%b
  42. )

  43. if "%1" EQU "" goto input
  44. set conf=%1
  45. call :cap %conf% conf
  46. echo %choice%|findstr /ic "%conf%">nul 2>nul
  47. if %errorlevel% NEQ 0 mshta vbscript:CreateObject("Wscript.Shell").popup("驱动器不存在!",3,"错误",64)(window.close)&&exit
  48. set Drive_Letter=%conf%
  49. set REG_EX=%Drive_Letter%%HP%
  50. goto auto

  51. :input
  52. cls
  53. echo %Def%当前文件夹位置:
  54. echo.
  55. echo.『我的文档』                %_dBlue%%Current_Personal%%Def%
  56. echo.『桌面』                %_dBlue%%Current_Desktop%%Def%
  57. echo.『下载』                %_dBlue%%Current_Downloads%%Def%
  58. echo.『收藏夹』                %_dBlue%%Current_Favorites%%Def%
  59. echo.『我的图片』                %_dBlue%%Current_My_Pictures%%Def%
  60. echo.『我的视频』                %_dBlue%%Current_My_Video%%Def%
  61. echo.『我的音乐』                %_dBlue%%Current_My_Music%%Def%
  62. echo.『保存的游戏』                %_dBlue%%Current_Saved_Games%%Def%
  63. echo.『联系人』                %_dBlue%%Current_Contacts%%Def%
  64. echo.『链接』                %_dBlue%%Current_Links%%Def%
  65. echo.『搜索』                %_dBlue%%Current_Searches%%Def%
  66. if defined doj (echo.『3D 对象』                %_dBlue%%Current_Objects%%Def%)
  67. echo.%_Green%
  68. echo.   U      还原默认
  69. echo.   Q      退出
  70. echo.%_Yellow%

  71. set Drive_Letter=%drive%
  72. set /P Drive_Letter="请输入目标驱动器(默认值:%drive%) [%choice%] "
  73. echo.
  74. if /i "%Drive_Letter%"=="Q" goto end
  75. if /i "%Drive_Letter%"=="U" goto copyfiles
  76. call :cap %Drive_Letter% Drive_Letter
  77. echo "%choice%" | findstr /C:"%Drive_Letter%" >nul
  78. if %errorlevel% equ 0 goto copyfiles
  79. mshta vbscript:CreateObject("Wscript.Shell").popup("输入有误,未找到对应驱动器!",2,"错误",64)(window.close)
  80. goto input

  81. :copyfiles
  82. echo %Drive_Letter%
  83. set /P CopyFile="是否复制文件夹到驱动器(默认值:N) [ 返回(R) | 是(Y) | 否(N) ] "
  84. echo.
  85. if /i "%CopyFile%"=="Y" goto delsource
  86. if /i "%CopyFile%"=="N" goto delsource
  87. if /i "%CopyFile%"=="R" goto input
  88. set CopyFile=N
  89. mshta vbscript:CreateObject("Wscript.Shell").popup("输入有误!",2,"错误",64)(window.close)
  90. goto copyfiles

  91. :delsource
  92. set /P DelFile="是否删除源驱动器文件夹(默认值:N) [ 返回(R) | 是(Y) | 否(N) ] "
  93. if /i "%DelFile%"=="Y" goto info
  94. if /i "%DelFile%"=="N" goto info
  95. if /i "%DelFile%"=="R" goto input
  96. set DelFile=N
  97. mshta vbscript:CreateObject("Wscript.Shell").popup("输入有误!",2,"错误",64)(window.close)
  98. goto delsource

  99. :info
  100. if /i "%CopyFile%"=="N" set CopyFilee=%_Blue%不%Def%
  101. if /i "%CopyFile%"=="Y" set CopyFilee=%_Red%是%Def%
  102. if /i "%DelFile%"=="N" set DelFilee=%_Blue%不%Def%
  103. if /i "%DelFile%"=="Y" set DelFilee=%_Red%是%Def%
  104. if /i "%Drive_Letter%"=="U" goto default
  105. set REG_EX=%Drive_Letter%%HP%
  106. goto connf

  107. :default
  108. set Drive_Letter=%HOMEDRIVE%
  109. set REG_EX=%%USERPROFILE%%
  110. if "%1" NEQ "" goto auto

  111. :connf
  112. echo %Def%================================= 配 置 信 息 =================================
  113. echo 目标驱动器:%_Red%%Drive_Letter%%HP%%Def%
  114. echo 复制文件夹:%CopyFilee%
  115. echo 删除源文件:%DelFilee%
  116. echo ===============================================================================
  117. echo.&&pause&&echo.
  118. :auto
  119. set shel=shell32.dll
  120. if "%Current_Desktop:~0,1%"=="%Drive_Letter:~0,1%" mshta vbscript:CreateObject("Wscript.Shell").popup("目标驱动器与当前驱动器相同!",2,"错误",64)(window.close)&&exit
  121. echo %_lBlue%正在处理『我的文档』...
  122. set Icon=-21770
  123. set Icon1=-112
  124. set Icon2=-235
  125. call :aing  "%Current_Personal%" Documents Personal "{F42EE2D3-909F-4907-8871-4C22FC0BF756}"

  126. echo 正在处理『桌面』...
  127. set Icon=-21769
  128. set Icon1=-183
  129. call :aing "%Current_Desktop%" Desktop Desktop "{754AC886-DF64-4CBA-86B5-F7FBF4FBCEF5}"

  130. echo 正在处理『下载』...
  131. set Icon=-21798
  132. set Icon1=-184
  133. call :aing "%Current_Downloads%" Downloads "{374DE290-123F-4565-9164-39C4925E467B}" "{7D83EE9B-2244-4E70-B1F5-5393042AF1E4}"

  134. echo 正在处理『收藏夹』...
  135. set Icon=-21796
  136. set Icon1=-115
  137. set Icon2=-173
  138. call :aing "%Current_Favorites%" Favorites Favorites

  139. echo 正在处理『我的图片』...
  140. set Icon=-21779
  141. set Icon1=-113
  142. set Icon2=-236
  143. set Icon3=-12688
  144. call :aing "%Current_My_Pictures%" Pictures "My Pictures" "{0DDD015D-B06C-45D5-8C4C-F59713854639}"

  145. echo 正在处理『我的视频』...
  146. set Icon=-21791
  147. set Icon1=-189
  148. set Icon2=-238
  149. set Icon3=-12690
  150. call :aing "%Current_My_Video%" Videos "My Video" "{35286A68-3C57-41A1-BBB1-0EAE73D76C95}"

  151. echo 正在处理『我的音乐』...
  152. set Icon=-21790
  153. set Icon1=-108
  154. set Icon2=-237
  155. set Icon3=-12689
  156. call :aing "%Current_My_Music%" Music "My Music" "{A0C69A99-21C8-4671-8703-7934162FCF1D}"

  157. echo 正在处理『保存的游戏』...
  158. set Icon=-21814
  159. set Icon1=-186
  160. call :aing "%Current_Saved_Games%" "Saved Games" "{4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}"

  161. echo 正在处理『联系人』...
  162. set Icon=-10100
  163. set Icon1=-181
  164. set Icon3=-10200
  165. call :aing "%Current_Contacts%" Contacts "{56784854-C6CB-462B-8169-88E350ACB882}"

  166. echo 正在处理『链接』...
  167. set Icon=-21810
  168. set Icon1=-185
  169. call :aing "%Current_Links%" Links "{BFB9D5E0-C6A9-404C-B2B2-AE6DB6AF4968}"

  170. echo 正在处理『搜索』...
  171. set Icon=-9031
  172. set Icon1=-18
  173. call :aing "%Current_Searches%" Searches "{7D1D3A04-DEBB-4115-95CF-2F29DA2920DA}"

  174. if not defined doj goto icoo
  175. echo %_lBlue%正在处理『3D 对象』...
  176. set shel=windows.storage.dll
  177. set Icon=-21825
  178. set Icon1=-198
  179. call :aing "%Current_Objects%" "3D Objects" "{31C0DD25-9439-4F12-BF41-7FF4EDA38722}"

  180. :icoo
  181. rem 正在处理『图标缓存』...
  182. attrib -r -a -s -h "%USERPROFILE%\AppData\Local\IconCache.db">nul 2>nul
  183. del /f /q "%USERPROFILE%\AppData\Local\IconCache.db">nul 2>nul
  184. goto end

  185. :aing
  186. md %Drive_Letter%%HP%\%2
  187. if /i %CopyFile% EQU Y xcopy %~1\*.* %Drive_Letter%%HP%\%2\ /s /y>nul 2>nul
  188. attrib -r -a -s -h %Drive_Letter%%HP%\%2\desktop.ini>nul 2>nul
  189. echo.>%Drive_Letter%%HP%\%2\desktop.ini
  190. echo [.ShellClassInfo]>>%Drive_Letter%%HP%\%2\desktop.ini
  191. echo LocalizedResourceName=@%%SystemRoot%%\system32\%shel%,%Icon%>>%Drive_Letter%%HP%\%2\desktop.ini
  192. if defined Icon3 echo InfoTip=@%%SystemRoot%%\system32\shell32.dll,%Icon3%>>%Drive_Letter%%HP%\%2\desktop.ini
  193. echo IconResource=%%SystemRoot%%\system32\imageres.dll,%Icon1%>>%Drive_Letter%%HP%\%2\desktop.ini
  194. if defined Icon2 echo IconFile=%%SystemRoot%%\system32\shell32.dll>>%Drive_Letter%%HP%\%2\desktop.ini
  195. if defined Icon2 echo IconIndex=%Icon2%>>%Drive_Letter%%HP%\%2\desktop.ini
  196. if %2==Links call :lnk
  197. if %2==Searches call :srs
  198. attrib -r +a +s +h %Drive_Letter%%HP%\%2\desktop.ini>nul 2>nul
  199. attrib -r +a +s -h %Drive_Letter%%HP%\%2 /s /d>nul 2>nul
  200. reg add "%regg%\Shell Folders" /f /v %3 /t REG_SZ /d "%Drive_Letter%%HP%\%~2">nul 2>nul
  201. reg add "%regg%\User Shell Folders" /f /v %3 /t REG_EXPAND_SZ /d "%REG_EX%\%~2">nul 2>nul
  202. set usf=%4
  203. if defined usf reg add "%regg%\User Shell Folders" /f /v %4 /t REG_EXPAND_SZ /d "%REG_EX%\%~2">nul 2>nul
  204. if /i %DelFile% EQU Y rd /s /q %1>nul 2>nul
  205. set usf=
  206. set Icon=
  207. set Icon1=
  208. set Icon2=
  209. set Icon3=
  210. exit /b

  211. :config
  212. set con=%1
  213. echo %con%|findstr /i "c">nul && set "CopyFile=Y"
  214. echo %con%|findstr /i "d">nul && set "DelFile=Y"
  215. exit /b

  216. ::字体颜色
  217. :_colorprep
  218. for /f %%a in ('echo prompt $E ^| cmd') do set "esc=%%a"
  219. set "Def=%esc%[0m"
  220. set  "_Red=%esc%[;91m"
  221. set  "_Green=%esc%[;92m"
  222. set  "_Blue=%esc%[;94m"
  223. set  "_dBlue=%esc%[;96m"
  224. set  "_lBlue=%esc%[;36m"
  225. set  "_Yellow=%esc%[;93m"
  226. exit /b

  227. :help
  228. echo.
  229. echo. %_Yellow%%~nx0%Def% [drive:] [/U] [/H] [/CD]
  230. echo.
  231. echo. drive:        目标驱动器,可以不加冒号:
  232. echo. /U        还原默认
  233. echo. /H        帮助
  234. echo. /CD        C-复制文件夹,D-删除源文件,可单独使用,默认不复制不删除
  235. echo.
  236. echo.eg. %_lBlue%%~nx0 d /cd%Def%        移动到D盘
  237. echo.    %_lBlue%%~nx0 e%Def%             在E盘新建一个用户文件夹
  238. echo.
  239. echo. 直接运行 %_Yellow%%~nx0%Def% 启动向导。
  240. echo.
  241. goto :EOF

  242. ::添加冒号&转大写
  243. :cap
  244. set aa=%~1
  245. if "%aa:~-1%" NEQ ":" (set "aa=%aa%:")
  246. for /f "delims=" %%a in ('tree "\$\%aa%"^|find /i ":\$\%aa%"') do set aa=%%~nxa
  247. set "%~2=%aa%"
  248. exit /b


  249. :lnk
  250. echo DefaultDropEffect=^4>>%Drive_Letter%%HP%\Links\desktop.ini
  251. echo [LocalizedFileNames]>>%Drive_Letter%%HP%\Links\desktop.ini
  252. echo RecentPlaces.lnk=@shell32.dll,-37217>>%Drive_Letter%%HP%\Links\desktop.ini
  253. echo Desktop.lnk=@shell32.dll,-21769>>%Drive_Letter%%HP%\Links\desktop.ini
  254. echo Downloads.lnk=@shell32.dll,-21798>>%Drive_Letter%%HP%\Links\desktop.ini
  255. exit /b

  256. :srs
  257. echo [LocalizedFileNames]>>%Drive_Letter%%HP%\Searches\desktop.ini
  258. echo Indexed Locations.search-ms=@searchfolder.dll,-32820>>%Drive_Letter%%HP%\Searches\desktop.ini
  259. echo Everywhere.search-ms=@searchfolder.dll,-32822>>%Drive_Letter%%HP%\Searches\desktop.ini
  260. exit /b

  261. :end
  262. taskkill /f /im explorer.exe
  263. start explorer.exe
  264. exit
复制代码





点评

辛苦了  发表于 2024-3-13 18:34

评分

参与人数 3无忧币 +8 收起 理由
denslin + 1 赞一个!
某些人 + 5 赞一个!
yyz2191958 + 2 赞一个!

查看全部评分

2#
发表于 2024-3-13 18:33:36 | 只看该作者
谢谢分享
回复

使用道具 举报

3#
发表于 2024-3-13 18:38:32 | 只看该作者
谢谢分享
回复

使用道具 举报

4#
发表于 2024-3-13 18:42:45 | 只看该作者
谢谢分享
回复

使用道具 举报

5#
发表于 2024-3-13 19:24:56 | 只看该作者
谢谢分享
回复

使用道具 举报

6#
发表于 2024-3-13 19:45:57 | 只看该作者
谢谢,正需要
回复

使用道具 举报

7#
发表于 2024-3-13 20:12:11 | 只看该作者
感谢分享  收藏
回复

使用道具 举报

8#
发表于 2024-3-13 20:33:54 来自手机 | 只看该作者
有检测磁盘大小么

点评

没,可检测之后调用  详情 回复 发表于 2024-3-13 20:50
回复

使用道具 举报

9#
发表于 2024-3-13 20:35:23 | 只看该作者
谢谢分享
回复

使用道具 举报

10#
 楼主| 发表于 2024-3-13 20:50:41 | 只看该作者
2012ccxbox 发表于 2024-3-13 20:33
有检测磁盘大小么

没,可检测之后调用
回复

使用道具 举报

11#
发表于 2024-3-13 21:49:23 | 只看该作者
过于复杂了
不如直接wimlib热备份admin文件夹
改文件夹列表直接改注册表
修改路径是通过注册表修改
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\r
ProfileImagePath值来实现的
回复

使用道具 举报

12#
发表于 2024-3-13 22:55:04 | 只看该作者
回复下载 感谢分享
回复

使用道具 举报

13#
发表于 2024-3-14 00:03:32 | 只看该作者
谢谢分享
回复

使用道具 举报

14#
发表于 2024-3-14 00:07:40 | 只看该作者
谢谢分享!
回复

使用道具 举报

15#
发表于 2024-3-14 00:19:04 | 只看该作者
感谢分享好东东
回复

使用道具 举报

16#
发表于 2024-3-14 02:43:49 | 只看该作者
这是伟大的理他主义精神!
回复

使用道具 举报

17#
发表于 2024-3-14 09:02:39 | 只看该作者
不错 收藏学习一下
回复

使用道具 举报

18#
发表于 2024-3-14 09:12:42 | 只看该作者
试试
回复

使用道具 举报

19#
发表于 2024-3-14 09:28:25 | 只看该作者
感谢分享
回复

使用道具 举报

20#
发表于 2024-3-14 09:55:11 | 只看该作者
谢谢分享
回复

使用道具 举报

21#
发表于 2024-3-14 10:10:12 | 只看该作者
谢谢分享
回复

使用道具 举报

22#
发表于 2024-3-14 13:46:27 | 只看该作者
谢谢热心提供分享!
回复

使用道具 举报

23#
发表于 2024-3-14 13:58:28 | 只看该作者
学习一下高级技巧了
回复

使用道具 举报

24#
发表于 2024-3-14 14:02:47 | 只看该作者
火钳刘明,好人一生平安
回复

使用道具 举报

25#
发表于 2024-3-14 15:09:41 | 只看该作者

感谢分享  收藏
回复

使用道具 举报

26#
发表于 2024-3-19 08:45:35 | 只看该作者
使用批处理转移文档 批处理真实强大
回复

使用道具 举报

27#
发表于 2024-3-26 21:58:54 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

28#
发表于 2024-3-26 22:14:44 | 只看该作者
两个附件什么区别

点评

没,第一个忘删了  详情 回复 发表于 2024-3-27 09:05
回复

使用道具 举报

29#
 楼主| 发表于 2024-3-27 09:05:53 | 只看该作者
chenshipeng 发表于 2024-3-26 22:14
两个附件什么区别

没,第一个忘删了
回复

使用道具 举报

30#
发表于 2025-1-18 12:31:18 | 只看该作者
来了解学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-7-23 21:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表