강좌 / 팁

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

2023.01.29 22:56

지후빠 조회:699 추천:16

안녕하세요?

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

어떤 폴더 내의 파일이나 폴더를 랜덤하게 하나 선택하는 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 - - -
4170 IE Toy v2.0 (Build 80) IE8 지원! 나왔네요 [6] 이현섭 7146 0 08-10
4169 HP노트북사용자 관련 윈도우즈7 인증문제 입니다. [6] Jy 11446 0 08-10
4168 (간단한팁) windows 7 에서 starcraft 화면 깨져서 나올때 ... [3] clem 9047 0 08-12
4167 (간단한팁)Windows 7 에서 starcraft 화면 깨지는것 해결방법 [7] clem 8852 0 08-12
4166 windows7 64비트 사용자 미디어플레이어와 미디어센타 mkv ... [3] 피가로1 9430 0 08-13
4165 Vista 스타일로 변경된 windows7의 부팅로고화면 복원하는법 [3] hmskhm 8883 0 08-13
4164 Windows 7 Service Optimizer 때문에 한글입력기가 안나오... [5] Mr.King 22628 0 08-14
4163 윈7에서 블루스크린(BAD_POOL_CALLER) 문제 해결 [2] 2PM 8395 0 08-14
4162 윈도우즈 시작시 "환영합니다" 에서 딜레이현상 ... [17] 쪼도리 15372 0 08-14
4161 윈도우 7 기능 - 디스크파티션 변경 [2] Native 64 11414 0 08-15
4160 [팁] WinRAR에서 분할압축시 원하는 용량으로 분할 압축하는법 [7] PoLaRiS 8797 0 08-15
4159 멀티 CPU, Core 부팅 옵션 [16] 에이치티티 12467 0 08-16
4158 윈도우7 에디션별 기능비교 [5] 닉스 19896 0 08-16
4157 Winkey 쌤과 꼬알라의 Win7 만담 시리즈 1~26편! [1] 강원FC 6299 0 08-18
4156 7의 인증 초기화 [3] Laputa 17082 0 08-19
4155 윈7에서 외부코덱 사용하기 [3] blue 8572 0 08-20
4154 뻘짓하다 생긴 어드민계정 없애기 [5] 미테니사키 9865 0 08-20
4153 스타 색깔 이상해지는것 해결 방법 [9] 바나마나 8149 0 08-20
4152 Windows 7 과 XP 프린터와 파일 서로 공유하기 [5] sp2 52848 3 08-22
4151 OEM SLP 키에 관한 한 가지 잘못된 상식... [7] 박성현 15191 0 08-23
XE1.11.6 Layout1.4.8