2017-12-01 8 views
1
set path="D:\Work,D:\workin,D:\files" 
set files ="txt,html,xml" 

path에 정의 된 디렉토리에서 files에 정의 된 확장명을 가진 파일을 검색하고 이름을 파일에 기록하는 방법은 무엇입니까? 여기 여러 디렉토리에서 주어진 확장자로 파일을 검색하는 방법은 무엇입니까?

은 이미 시도 것입니다 :

set "list=list.txt" 
pause 

pushd "%~dp0" 
>"%list%" (
for /f "delims=" %%i in ('2^>nul dir /ad /b') do (
    pushd "%%i" 
    for /f "delims=" %%j in ('2^>nul dir /a-d /b *.txt *.html') do (
     echo %%j& >nul 2>&1 copy/y "%%j" .. 
    ) 
    popd 
) 
) 
popd 
+0

지금까지 시도한 것은 무엇입니까? – cowCrazy

+0

명령 행에서 'set var = text'를 사용한 후 'echo % var %'로 문자열 출력이되지 않는 이유는 무엇입니까? '(https://stackoverflow.com/a/26388460/3074564)를 읽고 배치 파일 코딩 작업을 시작하십시오. [ '...'이 내부 또는 외부 명령, 실행 가능한 프로그램 또는 배치 파일로 인식되지 않는 이유는 무엇입니까?] (https://stackoverflow.com/a/41461002/3074564) 처음 두 개의 게시 된 줄에서 이미 잘못되었습니다. – Mofi

+0

나는'PATH'라는 변수 이름을 절대 사용하지 말 것을 강력히 제안합니다. 그것은 이미 시스템 변수이며, 이제는 그 세션을 위해 변경 했으므로 일부 명령이 올바르게 실행되지 않을 수 있습니다. – Squashman

답변

1

당신은 표준 FOR 명령을 사용하여이 과정을 단순화 할 수 있어야한다.

@Echo off 

>"FileList.log" (
for %%G in (D:\Work,D:\workin,D:\files) do (
    pushd "%%~G" 
    for %%H in (*.xml *.txt *.html) do (
     echo %%~H 
     copy /y "%%~H" .. 
    ) 
    popd 
) 
) 
+0

하위 폴더에서 검색하는 방법은 무엇입니까? – Vaaassaa

+0

@ PŖŌtein-, cmd 프롬프트를 열고'FOR' 명령에 대한 도움말을 읽으십시오. cmd 프롬프트에서 'FOR /?'를 입력하십시오. 코드에 두 문자 만 추가하면됩니다. – Squashman