2017-12-27 5 views
0

확인 내가 나를 위해 만든 간단한 배치 파일 사람이 기본적으로 현재 폴더의 모든 파일을 계산 한 후 2017_11_01 \ 그래서실행 배치 파일

사진 2017_11_01 \ 3
\ 사진처럼 3 개 폴더를 생성 할 수 있도록 \

@echo off 
:: get total number of files 
for /f %%A in ('dir /b *.jpg ^| find /v /c ""') do set /A total=%%A 

:: create subfolders and calculate skip 
for %%A in (3 10 30) Do (
    mkdir "%%A" 
    if %%A neq 30 (
    Set /A "skip%%A=total/25/%%A 
) Else (
    Set /A "skip%%A=total/%%A 
) 
) 

set Counter=0 
for %%f in (*.jpg) do call :p "%%f" 
goto :EOF 

:p 
set /a "Counter+=1,X=Counter%%skip3,Y=Counter%%skip10,Z=Counter%%skip30" 
if %X%==0 copy %1 "3" 
if %Y%==0 copy %1 "10" 
if %Z%==0 copy %1 "30" 
goto :eof 

새로 만든 폴더로 현재 폴더에서 파일을 복사가 다음과 w를 가지고로 2017_11_01

30 \ 코드는 \ 10 개
사진 금년 5 월 이후로 매력과 닮았습니다. 문제는 매우 많은 시간을 필요로하며 매일 또는 매주이 작업을 수행해야합니다. 그러나 나는 2 개월 동안 그 일을하지 않았으므로 거의 60 개의 폴더가있어 하루 종일 걸릴 것입니다.

내 질문 "사진"폴더에서 배치 파일을 실행하고 각 하위 폴더에서 재귀 적으로 실행할 수 있도록 수정할 수 있습니까?

매일 몇 가지 이유로 자동화하고 싶지 않습니다. 한 번에 여러 하위 폴더에서 배치 파일을 실행할 수있게되면 엄청난 개선이 될 것입니다. 내가하고 래퍼를 구축로 작업 스크립트를 사용하는 것이 좋습니다

+0

'recursively' 의미 : * 모든 * 하위 하위 폴더를 포함하는 루트 폴더 (아래 폴더, 하위 하위에서 실행 - 하위 폴더 등), 그게 당신이 원하는거야? 또는 루트 폴더의 모든 폴더 (한 단계 씩)? – Stephan

+0

안녕하세요. 죄송합니다. 그래서 "사진"루트 폴더에 배치 파일을 배치하고 모든 폴더에서 한 단계 깊이 ("2017_11_01", "2017_11_02"등) 실행되도록하고 싶습니다. 스크립트는 한 번에 하나의 폴더를 이상적으로 실행하는 데 약 2 분이 걸립니다. (어쨌든 작동하는 방식을 추측합니다) –

답변

0

는 :

@echo off 
for /d %%a in (20*) do (
    echo processing %%a 
    pushd "%%a" 
    call "%~dp0yourcurrentscript.bat" 
    popd 
) 
+0

멋진 결과를 알려 드리겠습니다. –

+0

확인해 보았습니다. 나는 기존 스크립트 "folder_sort.bat"로 "yourcurrentscript.bat"를 편집했다. 그런 다음 루트 폴더와 run을 둘 다 넣었다. C : \ Users \ John \ Pictures \ IPTimelapse \ test> root_sort.bat 처리 2017_11_06 'folder_sort.bat'은 내부 또는 외부 명령 작동 가능 프로그램 또는 배치 파일로 인식되지 않습니다. 처리 중 2017_11_07 'folder_sort.bat'이 (가) 내부 또는 외부 명령으로 인식되지 않습니다. –

+0

"folder_sort.bat"가 각 하위 폴더에있는 경우 위의 방식대로 작동합니다. –