2011-08-31 4 views
1

컴퓨터 이름과 밑줄 및 날짜 스탬프로 시작하는 DOS 배치 파일을 사용하여 디렉터리의 내용을 복사하려고합니다. 내 첫 충동은 다음과 같이 변형되었습니다.날짜 스탬프가있는 디렉터리를 복사하는 방법

copy D:\%Computername%_\*\\*.* C:\WhateverPath 

물론 작동하지 않습니다. 간단한 문제처럼 보이지만 배치 파일이나 DOS에 대한 많은 경험이 없습니다.

+0

이유가 작동하지 않는 이유는 디렉토리 이름에 와일드 카드를 지정할 수 없기 때문이며 파일 이름에서만 사용할 수 있습니다. 타임 스탬프가 여러 개인 폴더가 여러 개있는 경우 지정할 수 있습니까? 그리고이 폴더들 내의 모든 파일들이 같은 폴더에 들어가기를 원합니 까? 같은 타임 스탬프를 가진 폴더로 옮기고 싶습니까? – Mechaflash

답변

1

시도 : C:\WhateverPath

FOR /d %d IN (D:\%COMPUTERNAME%_*) DO xcopy %d C:\WhateverPath /E 

D:\에서 패턴 %COMPUTERNAME%_*와 (따라서 /d) 모든 디렉토리을 반복하고, 사본이 디렉토리의 내용을. /E은 모든 파일과 디렉토리를 복사하기위한 것이며 비어있는 파일과 디렉토리도 복사합니다.

xcopy에 대한 설명을 보려면 xcopy /?을 DOS 셸 (cmd)에 입력하십시오.

참고 : 배치 파일 (something.bat)에 넣고 경우, 위의 코드에서 %%d%d를 교체해야합니다. 여러 폴더 C:\%computername%_%random_time_stamp%\을 표시하고 당신이 그들 각각 다음 하나의 폴더에 그 내용을 모두 이동에 액세스해야하는 경우

1

, 당신은이 작업을 수행 할 수 있습니다 경로에서 유일하게 밑줄을 감안할 때

이 사이의 하나입니다 % 명령에서 나오는 모든 결과에 대한 상태

FOR /F "USEBACKQ tokens=*" %%F IN (`DIR /b /a:d "C:\" ^| FIND /I "%computername%_"`) DO (
COPY /y "%%~fF\*" "C:\WhateverPath\" 
) 

가 DIR/헤더 정보를 의미가없는 B 스위치,/a를 컴퓨터 이름 %와 타임 스탬프 : 만 돌아 디렉토리를 의미하는 거라고, 나는 만 폴더를 찾으려면 computername_을 입력하고 각 폴더의 내용을 C : \ WhateverPa에 복사하고 싶습니다. th \ 폴더.

관련 문제