강좌 / 팁

윈 도 우 특정 폴더 내 임의 파일/폴더 선택 배치 함수

2023.01.29 22:56

지후빠 조회:783 추천:17

안녕하세요?

게시물 보다가 궁금하여 검색해보았는데 이거다 싶은 것이 없어서 검색한 것 참고하여 만들어 봤습니다.

어떤 폴더 내의 파일이나 폴더를 랜덤하게 하나 선택하는 batch function 입니다.

 

예를 들어, 윈도우11에서 C:\Windows\Web\Wallpaper 하위 폴더와 파일 구조는 다음과 같습니다.

여기에서 C:\Windows\Web\Wallpaper 하위의 임의 jpg 파일이나 Theme? 폴더를 선택하고 싶을때 사용할 수 있습니다.

C:\Windows\Web\Wallpaper\Extended

C:\Windows\Web\Wallpaper\Spotlight

C:\Windows\Web\Wallpaper\ThemeA

C:\Windows\Web\Wallpaper\ThemeB

C:\Windows\Web\Wallpaper\ThemeC

C:\Windows\Web\Wallpaper\ThemeD

C:\Windows\Web\Wallpaper\Windows

C:\Windows\Web\Wallpaper\Spotlight\img14.jpg

C:\Windows\Web\Wallpaper\Spotlight\img50.jpg

C:\Windows\Web\Wallpaper\ThemeA\img20.jpg

C:\Windows\Web\Wallpaper\ThemeA\img21.jpg

C:\Windows\Web\Wallpaper\ThemeA\img22.jpg

C:\Windows\Web\Wallpaper\ThemeA\img23.jpg

C:\Windows\Web\Wallpaper\ThemeB\img24.jpg

C:\Windows\Web\Wallpaper\ThemeB\img25.jpg

C:\Windows\Web\Wallpaper\ThemeB\img26.jpg

C:\Windows\Web\Wallpaper\ThemeB\img27.jpg

C:\Windows\Web\Wallpaper\ThemeC\img28.jpg

C:\Windows\Web\Wallpaper\ThemeC\img29.jpg

C:\Windows\Web\Wallpaper\ThemeC\img30.jpg

C:\Windows\Web\Wallpaper\ThemeC\img31.jpg

C:\Windows\Web\Wallpaper\ThemeD\img32.jpg

C:\Windows\Web\Wallpaper\ThemeD\img33.jpg

C:\Windows\Web\Wallpaper\ThemeD\img34.jpg

C:\Windows\Web\Wallpaper\ThemeD\img35.jpg

C:\Windows\Web\Wallpaper\Windows\img0.jpg

C:\Windows\Web\Wallpaper\Windows\img19.jpg

 

pick_one_randomly.bat

pick_one_randomly.jpg

 

배치 파일에 만든 5개의 함수가 있는데, 앞쪽 4개는 종류별로 만들어보고, 5번째 :pickone 하나로 합친 것입니다.

앞쪽 4개는 참고용이라 5번째 :pickone 만 설명드리겠습니다. 옵션별 사용 예제 4개가 배치파일에 들어있습니다.

 

:pickone <start root> <file type> <variable assigned> <option = /r,/d,"/d /r">

setlocal enabledelayedexpansion & pushd %~1 & set i=0

for %~4 %%# in (%~2) do set "#!i!=%%~#" & set /a i+=1

set /a #="%random% %% i"

set "##=!#%#%!" & set "##=%~1\!##:%~1\=!"

endlocal & set "%~3=%##%" & exit /b

 
call :pickone <start root> <file type> <variable assigned> <option = /r,/d,"/d /r">
- 첫번째 <start root> ; C:\Windows\Web\Wallpaper 형태로 끝에 \ 없이 폴더를 지정, 공백 포함시 쌍따옴표로 묶어줍니다.
- 두번째 <file type> ; 파일 타입이나 폴더명, 와일드 카드 사용, *,jpg Theme? 등
- 세번째 <variable assigned> ; 선택한 전체 경로를 할당할 변수 지정, 예) pick1
- 네번째 <option = /r,/d,"/d /r"> ; 생략시 <start root> 경로내에서 파일만 찾고, /d 는 폴더를 대상으로, /r 은 서브 폴더 포함한 전체에서, "/d /r" 은 서브 폴더 포함하여 폴더를 대상으로 찾습니다.
 
임의 파일을 선택하여 실행(재생)하거나 배경화면으로 지정하는 등에서 사용할 수 있을 것 같습니다.^^
밤이 깊어 갑니다. 편히 주무십시오. ^^;
 
pick_one_randomly_code.jpg

 

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
» 윈 도 우| 특정 폴더 내 임의 파일/폴더 선택 배치 함수 [10] 지후빠 783 17 01-29
4264 윈 도 우| 프로그램 필요없이, 윈도우 설치 USB 만들기 [16] zerojiddu 5807 27 01-18
4263 기 타| CMD BAT 를 UTF8 모드로 사용 [13] 입니다 1765 22 01-16
4262 윈 도 우| 폴더 깊이 제한하여 파일,폴더 찾기 배치 함수 [11] 지후빠 1377 16 01-12
4261 윈 도 우| 배치파일 명령어 > nul 2>&1 해석 [5] 컨피그 1368 12 01-11
4260 윈 도 우| BCD 백업 및 복구 프로그램 입니다 [14] 지룡자 2907 41 01-10
4259 하드웨어| Windows 11에서 Realtek 오디오 드라이버를 쉽게 수정하는 ... [6] VᴇɴᴜꜱGɪ 3021 7 01-04
4258 하드웨어| USB 키패드를 매크로 키패드로 사용하기 [7] 지후빠 2149 16 01-02
4257 윈 도 우| 삭제할수 없는 시스템 앱, 삭제 방법 [8] zerojiddu 3670 13 01-01
4256 소프트웨어| Wise care 365 사용시 주의점 [5] heykevin 2629 9 12-30
4255 윈 도 우| 포맷없이 , diskpart 작업 없이 기존 디스크에 EFI 파티션 ... [14] heykevin 3596 23 12-30
4254 윈 도 우| Chromium 기반 브라우저 OS 지원 종료 예정 알림 제거 자동... [8] 녹색조각 1694 15 12-29
4253 윈 도 우| IP 주소 변경 배치(DSN/WINS) [20] 무월 3856 30 12-28
4252 윈 도 우| Microsoft Update 카탈로그 (업데이트 항목 . 빨리 받아 적... [3] heykevin 1437 7 12-28
4251 하드웨어| ASROCK 메인보드에 관하여..... [5] 밤이슬216 2742 5 12-25
4250 소프트웨어| 마우스 두개 양손 사용시 왼손 마우스 버튼 스왑 [7] 지후빠 1304 13 12-24
4249 윈 도 우| 장치 드라이버 업데이트 파워쉘로 확인하기 [1] zerojiddu 1595 7 12-22
4248 윈 도 우| Windows 10, 12월 보안 패치(KB5021233) 설치 후 뜨는 블루... [5] 타천사둘리 2007 8 12-20
4247 윈 도 우| [실사] USB 테더링으로 PC 인터넷 랜 드라이버 설치하기! [8] 무월 1822 15 12-20
4246 윈 도 우| 관리자보다 더쎈 권한으로, 접근제한 에러 뚫기 [20] zerojiddu 4208 16 12-18
XE1.11.6 Layout1.4.8