2014-01-29 2 views
0

나는 주어진 경로 내에서 여러 하위 디렉토리를 검색하도록 변경하려고하는 스크립트가 있습니다. 그런 다음 위치에있는 파일을 복사하여 폴더에있는 복사 된 파일과 함께 폴더를 만듭니다. 현재 스크립트는 작동하지만 하위 디렉토리를 검색하는 방법은 무엇입니까? 아래 스크립트를 변경하려면 어떻게합니까?하위 디렉토리를 검색하는 배치 파일

@echo off 
set LIST= C:\batch\list.txt 
set FILESPATH="C:\Test" 
for %%i in ("%LIST%") do set DEST=%%~ni 
for /F "usebackq delims==" %%i in (%LIST%) do (call :COPY_FILES "%%i") 
:COPY_FILES 
xcopy /qv %FILESPATH%\%1 .\%DEST%\* 

나는이 라인/F에 대한

"usebackq delims ="%%에서 내가 ('DIR/s의/B "%리스트 %가"'()를 호출 할을 변경하는 것을 시도했다 : COPY_FILES " %% i "), list.txt 파일을 찾을 수 없다는 오류가 발생합니다.

감사합니다.

+0

대상 폴더의 마지막 행이 'c : \ batch \ list.txt'가됩니다. 그게 니가하고 싶은거야? 하위 디렉토리를 포함하려면'/ s'을 xcopy 명령에 추가하십시오. – foxidrive

+0

list.txt는 스크립트가 지정된 폴더 C : \ Test를 검색하는 데 사용하는 파일 이름 목록입니다. 이 잘 작동하지만 C : \ Test 경로 안에 모든 하위 디렉터리를 검색하려면 스크립트가 필요합니다. – user3248629

+0

나는 그런 경우에 잘 작동하지 않는다. '% dest %'부분이'% list %'의 마지막 줄의 일부 또는 전체로 설정되고 있습니다. – foxidrive

답변

0

테스트 : xcopy 줄만 콘솔에 인쇄합니다.

만약 그렇다면 xcopy 라인에서 echo을 제거하고 실제 실행하십시오.

명령이 올바르지 않은 경우 줄의 샘플을 제공하여 잘못된 부분을 확인하십시오.

@echo off 
set "LIST=C:\batch\list.txt" 
set "FILESPATH=C:\Test" 
for /F "usebackq delims=" %%i in ("%LIST%") do (
    echo xcopy /s/h/k/f/c/q/v "%FILESPATH%\%%i" "%%~ni\" 
) 
pause 
+0

그래도 list.txt에 나열된 파일을 찾을 수 없지만 버전을 사용해 보았습니다. . – user3248629

+0

C : \ 배치> 0 파일 (들) 0 파일 (들) 0 파일 (들) 파일 list.bat를 찾을 수 없습니다 - 247.LOG 0 파일 (들) 파일을 찾을 수 없습니다 - 247.TXT 0 파일 계속하려면 아무 키나 누르십시오. 이것은 오류 – user3248629

+0

입니다. 위의 코드를 시도해보십시오. 명령 줄이 표시됩니다. 그 중 하나를 보여주십시오. – foxidrive

관련 문제