2014-12-01 3 views
0

사용자 문서에서 플래시 드라이브로 파일을 복사하는 .bat 스크립트를 얻으려고합니다. 물론 우리 모두가 사용자 디렉토리에 다음과 같은 문서를 가지고있는 것은 아닙니다. 인수 또는 해결 방법 우리는 말과 함께 "%의 USERPROFILE %의 \ 문서"를 대체 할 수있는, % userdocumentsdir % 또는 뭔가.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 

있습니까 : 우리가 무엇인가? Google을 통해 아무 것도 찾을 수 없습니다.

시간 내 주셔서 감사합니다.

+0

그냥이 아마 [이 질문] (의 중복입니다 (응답 후) 발견 http://stackoverflow.com/questions/3492920/is-there-a-system-defined-environment-variable- for-documents-directory) – eis

답변

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% 

참고.

소스

: this discussion (즉, 정말 제 생각 엔 저기 serverfault에 있으면 안)

+1

XP, 사용자 정의 또는 지역화 된 시스템 중 공백이 반환 경로에 허용되어야합니다. HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell 폴더 "/ v"Personal " ') (SET userdocumentsdir = "%% H")' –

+0

@ScottC 공정한 포인트 – eis

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 
관련 문제