Board logo

标题: [文件操作] 批处理无法复制桌面、我的文档、收藏夹三个路径下的所有文件到指定目录是什么原因 [打印本页]

作者: q260461    时间: 2016-7-12 14:09     标题: 批处理无法复制桌面、我的文档、收藏夹三个路径下的所有文件到指定目录是什么原因

本帖最后由 pcl_test 于 2016-7-15 09:37 编辑
  1. for /f "tokens=2,*" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Desktop"') do ( set desk=%%j )
  2. echo 桌面路径是%desk%
  3. xcopy "%desk%"\*.* "D:\MARK请~1\Desktop\" /s /h
  4. pause >nul
  5. @echo off
  6. REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders">%Temp%\Temp.txt
  7. FOR /F "TOKENS=2* DELIMS= " %%I IN ('TYPE %Temp%\Temp.txt^|FINDSTR /I "Personal"') DO ( SET "Personal=%%~J" )
  8. del %Temp%\Temp.txt
  9. echo 我的文档的路径是: "%Personal%"
  10. xcopy "%Personal%"*.* "D:\MARK请~1\Docume~1\" /s /h
  11. pause >nul
  12. for /f "tokens=2,*" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Favorites"') do ( set Fav=%%j )
  13. echo 收藏夹路径是%Fav%
  14. xcopy "%Fav%"*.* "D:\MARK请~1\Favori~1\" /s /h
  15. pause >nul
  16. @echo off
  17. @ D:\Todisk.reg
  18. @echo off
  19. @ D:\ClientSetup.exe
复制代码

作者: GNU    时间: 2016-7-12 17:03

有什么报错信息吗?
执行结果和你的预期具体有哪些差距?
作者: q260461    时间: 2016-7-12 17:35

回复 2# GNU

%userprofile%\documents 这个是不是我的文档的路径,为什么

xcopy "%userprofile%\documents\"*.* "D:\MARK请~1\Docume~1\" /s /e这一条实现不了呢
作者: GNU    时间: 2016-7-12 18:17

回复 3# q260461


我的Win7 SP1 64位企业版未见异常,不知你用的什么系统。

C:\>cd /d %USERPROFILE%\Documents

C:\Users\GNU\Documents>dir /b
Custom Office Templates
Fax
My Received Files
Scanned Documents
作者: WHY    时间: 2016-7-14 22:04

第1行,变量值后面不要带空格:
... do ( set "desk=%%j" )
第7行,REG_EXPAND_SZ 类型数据用call set 解开:
... DO ( call SET "Personal=%%~J" )
第10行,少一个\
... "%Personal%\"*.*
第12、14行一样
作者: ygqiang    时间: 2016-7-15 10:42

本帖最后由 pcl_test 于 2016-7-15 10:59 编辑

回复 1# q260461
  1. @echo off
  2. REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders">%Temp%\Temp.txt
  3. FOR /F "TOKENS=2* DELIMS= " %%I IN ('TYPE %Temp%\Temp.txt^|FINDSTR /I "Personal"') DO (call SET "Personal=%%~J")
  4. FOR /F "TOKENS=2*" %%I IN ('TYPE %Temp%\Temp.txt^|FINDSTR /I "Personal"') DO (call SET "Personal=%%~J")
  5. del %Temp%\Temp.txt
  6. echo 我的文档路径是%Personal%
  7. pause >nul
复制代码
xp、win7 32、win7 64系统测试通过。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2