- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다. - (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date |
2022/09/04 12:19:39 |
Name |
약쟁이 |
Subject |
[질문] 컴퓨터 파일명 일괄 변경, 이런 기능 있는 앱 있을까요? (수정됨) |
A 폴더 파일 9개 , B 폴더 파일 99개 , C 폴더 파일 999개
이렇게 가정하고 각각의 폴더 안에 있는 파일의 파일명을 아래처럼 일괄변경하려고 합니다.
A 폴더는 1 2 3 4 5 6 7 8 9
B 폴더는 01 02 03 ~~~ 99
C 폴더는 001 002 003 ~~~ 999
A B C 폴더를 선택하고 파일명을 숫자로 일괄변경하면
앱에서 파일명 길이를 폴더의 파일 갯수에 맞춰 일괄변경
이런 기능이 있는 리네임 앱이 예전에 있었는데, 앱 이름이 기억나질 않네요.
Total Commander의 파일명 일괄변경에선 파일 갯수에 맞춰 파일명 길이를 정할 순 없네요.
도움 부탁드려봅니다.
==================================================================================
추가
아래는 배치 파일로 제가 원하는 기능을 비슷하게 구현한 겁니다. 제가 만든 건 아닙니다.
Total Commander에서 폴더를 선택하고 단축키로 스크립트를 실행시키면
선택한 폴더의 목록을 List.txt 파일에 저장하고 파일명을 일괄변경합니다.
그런데 이게 파일명에 "." 들어간 경우를 생각하지 않고 만들어진 거라
파일명에 "." 이 들어가 있으면 아래처럼 변경이 됩니다.
a.a.jpg -> 1.a.jpg
혹시나 이걸 해결할 수 있는 능력자 분이 계시면 도움 부탁드려봅니다.
@echo off
::echo go
if %1!==! goto end
if %1!==}{! goto pass2
::pause
::echo go1
set count0=0
( Dir %1*.* /B 2>NUL | Find /C /V "" ) > %temp%{}.dat
for /F "tokens=*" %%a in (%temp%{}.dat) do set /a count0 = %%a
echo %1 >> Log.txt
echo "파일수" - %count0% >> Log.txt
dir %1*.* /b /a:-d /o:n /s> %temp%}{.dat
set count=0
for /F "tokens=*" %%a in (%temp%}{.dat) do call %0 }{ "%%a" %count0%
del %temp%{}.dat
del %temp%}{.dat
echo %count0% 파일의 이름변경
echo.>> Log.txt
::pause
goto end
::----------------------------------------------
::----------------------------------------------
:pass2
:: echo go2
set /a count+=1
set fname=%count%.*
::echo %count0% %count%
::pause
if %count0% LSS 10 goto First
::echo 10 "초과"
if %count0% LSS 100 goto Second
::echo 100 "초과"
if %count0% LSS 1000 goto Third
::echo 1000 "초과"
if %count0% LSS 10000 goto Fourth
echo 10000 "초과"
::pause
goto end
::----------------------------------------------
:First
::echo "First"
if %count% gtr %count0% (
::echo %count% 가 %count0% "초과"
goto end
)
ren %2 0%fname%
echo %2 0%fname%
echo %2 0%fname% >> Log.txt
::pause
goto end
::----------------------------------------------
:Second
::echo "Second"
if %count% gtr %count0% (
::echo %count% 가 %count0% "초과"
goto end
)
if %count% LSS 10 (
ren %2 0%fname%
echo %2 0%fname%
echo %2 0%fname% >> Log.txt
) ELSE (
ren %2 %fname%
echo %2 %fname%
echo %2 %fname% >> Log.txt
)
::pause
goto end
::----------------------------------------------
:Third
::echo "Third"
if %count% gtr %count0% (
::echo %count% 가 %count0% "초과"
goto end
)
if %count% LSS 10 (
ren %2 00%fname%
echo %2 00%fname%
echo %2 00%fname% >> Log.txt
) ELSE (
if %count% LSS 100 (
ren %2 0%fname%
echo %2 0%fname%
echo %2 0%fname% >> Log.txt
) else (
ren %2 %fname%
echo %2 %fname%
echo %2 %fname% >> Log.txt
)
)
::pause
goto end
::----------------------------------------------
:Fourth
::echo "Fourth"
if %count% gtr %count0% (
::echo %count% 가 %count0% "초과"
goto end
)
if %count% LSS 10 (
ren %2 000%fname%
echo %2 000%fname%
echo %2 000%fname% >> Log.txt
) ELSE (
if %count% LSS 100 (
ren %2 00%fname%
echo %2 00%fname%
echo %2 00%fname% >> Log.txt
) else (
if %count% LSS 1000 (
ren %2 0%fname%
echo %2 0%fname%
echo %2 0%fname% >> Log.txt
) else (
ren %2 %fname%
echo %2 %fname%
echo %2 %fname% >> Log.txt
)
)
)
:: pause
goto end
::----------------------------------------------
:end
::pause
|
통합규정 1.3 이용안내 인용
"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
|