2017-01-31 5 views
-3

cmd를 사용하여 백업 스크립트를 만들려고합니다. 이 지금까지 내 코드입니다 :cmd를 사용하는 백업 폴더

X: 
MKDIR "2017MMDD XXX Restore Profile" 
CD "X:\2017MMDD XXX Restore Profile" 
MKDIR "Desktop" 
MKDIR "Favorites" 
MKDIR "My Documents" 
MKDIR "Pictures" 
MKDIR "Videos" 
XCOPY "C:\Users\%username%\Desktop" "X:\2017MMDD XXX Restore Profile\Desktop" 
XCOPY "C:\Users\%username%\Favorites" "X:\2017MMDD XXX Restore Profile\Favorites" 
XCOPY "C:\Users\%username%\Documents" "X:\2017MMDD XXX Restore Profile\My Documents" 
XCOPY "C:\Users\%username%\Pictures" "X:\2017MMDD XXX Restore Profile\Pictures" 
XCOPY "C:\Users\%username%\Videoes" "X:\2017MMDD XXX Restore Profile\Videos" 



Pause 

문제는 단지 파일을 복사하지 폴더를 그 (어떤이있는 경우). 파일과 폴더를 모두 복사하는 함수가 필요합니다.

보너스, cmd를 사용하여 날짜를 쓰는 명령이 있습니까? (2017MMDD 대신 나머지 부분을 기입해야합니다.) :)

+0

나는 그것을 알아 냈습니다. 유일한 방법은 자동으로 날짜를 만드는 방법입니다. –

+0

사용중인 명령의 도움말을 읽는 방법은 무엇입니까? 'xcopy /?'를 새로운 명령 프롬프트 창에 입력하십시오. 날짜 부분에 관해서 :이 사이트를 검색하면 많은 질문과 그에 대한 답변이 있습니다. 'X : \ 2017MMDD XXX Restore Profile \ Desktop'에 너무 많은 공백이 있습니다! – aschipfl

+0

내가 말했듯이, 나는 일하게했다. 공백은 문제가 아니 었습니다. –

답변

0

날짜 부분 문제에 대한 답변 : date /t 명령을 사용하면 현재 날짜를 알려줄 수 있습니다. 해당 명령의 "바로 가기"는 동적 환경 변수 %date%입니다 (다른 값으로 해당 변수를 재정의하지 않은 경우에만 해당). 두 가지 중 하나를 for f과 결합하면 날짜의 형식이 지정된 연도, 월 및 일을 쉽게 추출 할 수 있습니다. 내가 당신에게 경고해야 할 해결책을 알려주기 전에 date /t 명령과 %date% 변수가 날짜를 반환하는 format은 설정에 따라 달라집니다. (위치 및/또는 언어 설정은 아마도 Windows 버전에 따라 다름) . 내 경우에는 형식이었다에 dd DD/MM/YYYY : 요일

  • DD 월의 현재 날짜 (2 자리 숫자 형식)
  • MM 현재 달의 이름

    • dd 두 글자 올해 (2 자리 숫자 형식)
    • YYYY 현재 연도 (4 자리 형식)

    그래서 내 측면에, 일, 월, 년을 얻으려면이 방법으로 for f을 사용해야합니다. 구분자로 / (공백)을 사용하고 각각 하루를 나타내는 두 번째, 세 번째 및 네 번째 필드를 추출합니다. , 달과 해.

    @echo off 
    
    for /f "tokens=2-4 delims=/ " %%G IN ("%date%") DO (
        set day=%%G 
        set month=%%H 
        set year=%%I 
    ) 
    echo day: %day% 
    echo month: %month% 
    echo year: %year%