无忧启动论坛

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

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

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

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


适用于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 ('wmic logicaldisk where DriveType^=3 Get FileSystem^,FreeSpace^,Name^,Size^|findstr ":"') 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. if "%Drive_Letter%"=="%drive%" goto copyfiles
  78. mshta vbscript:CreateObject("Wscript.Shell").popup("输入有误,未找到对应驱动器!",2,"错误",64)(window.close)
  79. goto input

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


win.txt

21.42 KB, 下载次数: 13, 下载积分: 无忧币 -2

win1.txt

10.98 KB, 下载次数: 10, 下载积分: 无忧币 -2

点评

辛苦了  发表于 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
两个附件什么区别

没,第一个忘删了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 20:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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