.BAT从用户的文档目录中复制文件

时间:2014-12-01 05:00:45

标签: batch-file xcopy

我试图获取.bat脚本将文件从用户的文档复制到闪存驱动器,但当然并非所有人都将我们的文档放在我们的用户目录中 - 以下是什么我们有:

for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
IF EXIST %%a:\STUDYvault.id SET drive=%%a:\ && GOTO Meep:
)
xcopy "%USERPROFILE%\Documents\ExampleFolder" "%drive%Backup\ExampleFolder" /S /D /Y /I

我们可以采取哪些论据或解决方法来替换"%USERPROFILE%\ Documents"比方说,%userdocumentsdir%或者其他什么?无法通过谷歌找到任何东西。

谢谢你的时间!

2 个答案:

答案 0 :(得分:1)

没有这样的环境价值,您必须从注册表中获取它。

你可以这样做:

FOR /F "tokens=3 " %%G IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal"') DO (SET userdocumentsdir=%%G)

echo %userdocumentsdir%

请注意,代码应在.bat文件上运行。

资料来源:this discussion(我不应该真的在服务器故障中)

答案 1 :(得分:0)

这段代码可以解决问题。

@echo off
echo Tested and worrking in win XP, vista, 7, 8, 8.1 and 10
    for /f "skip=2 tokens=2*" %%c in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal"') do @set "docs=%%d" && echo WIN XP - 10
    xcopy "%docs%\test.txt" "I:\" /f /y
    xcopy "%docs%\test folder" "I:\test folder\" /d /e /y
echo %docs%
pause
EXIT