배치파일 잘 아시는 분 계신가요?
페이지 정보
작성자
골드
![](https://cdn.damoang.net/data/member_image/go/google_87770844.gif?1714428551)
작성일
2025.01.25 08:44
본문
안녕하세요? 배치파일 제작해서 사용하다 더 나은 방법이 없을까해서 질문드립니다.
제가 shell:sendto 에 배치파일을 넣어서 파일명 앞에 일자를 쉽게 넣을 수 있도록 하고 있는데
여러 파일을 한 번에 할 경우 하나만 됩니다.
그래서 요청드리고 싶은 것이 여러 파일을 드래그 한 상태에서 마우스 오른쪽 ->보내기 -> "날짜삽입.bat"을 한 경우, 오늘 날짜인 경우에는 넘어가고 오늘 날짜가 아닌 경우 날짜삽입 반복적으로 움직일 수 있도록 가능할까요?
한 번에 여러 파일을 오늘 날짜로 붙이는 방법을 알고 싶습니다.
아래는 현재 제가 쓰고 있는 배치파일입니다.
@echo off
SET yymmdd=%DATE:~2,2%.%DATE:~5,2%.%DATE:~8,2%
SET NEWFILENAME=%yymmdd% %~n1%~x1
ECHO %NEWFILENAME%
REN %1 "%NEWFILENAME%"
답변주시면 감사드리겠습니다.
풍성하고 즐거운 명절되십시오.^^
3명
추천인 목록보기
댓글 6
/ 1 페이지
골드님의 댓글의 댓글
작성일
01.25 09:08
@istree님에게 답글
와우 대단하십니다. 정말 감사드려요!!
차근차근 공부하면서 써먹겠습니다.
다시 한 번 감사합니다^^
차근차근 공부하면서 써먹겠습니다.
다시 한 번 감사합니다^^
cpp64님의 댓글
작성자
cpp64
![](https://cdn.damoang.net/data/member_image/go/google_9ec809b4.gif?1714428560)
작성일
01.25 09:53
Total Commander 에서 Ctrl + M 누르면 파일/폴더 이름 일괄변경하는 기능이 있습니다.
거기서 자주 사용하는 이름 일괄변경 양식을 저장한 후에 재활용하세요.
거기서 자주 사용하는 이름 일괄변경 양식을 저장한 후에 재활용하세요.
까망꼬망1님의 댓글
작성자
까망꼬망1
![](https://cdn.damoang.net/data/member_image/go/google_9b7b091c.gif?1714428559)
작성일
01.25 19:35
다크네이머라고 파일이름 일괄로 바꿔주는 유틸리티 있습니다.
예전에 쓸땐 날짜삽입 기능도 있던걸로 기억하는데..한번 요것도 찾아보세요
예전에 쓸땐 날짜삽입 기능도 있던걸로 기억하는데..한번 요것도 찾아보세요
istree님의 댓글
다음은 수정된 코드입니다:
### 수정된 `날짜삽입.bat` 파일
```batch
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
REM 오늘 날짜를 구합니다 (형식: YY.MM.DD)
SET yymmdd=%DATE:~2,2%.%DATE:~5,2%.%DATE:~8,2%
REM 여러 파일 처리
FOR %%F IN (%*) DO (
REM 파일명과 확장자를 분리
SET "filename=%%~nF"
SET "extension=%%~xF"
REM 이미 날짜가 붙어 있는지 확인
ECHO !filename! | FIND "%yymmdd%" >NUL
IF ERRORLEVEL 1 (
REM 오늘 날짜가 없는 경우 새로운 이름으로 변경
SET "newfilename=%yymmdd% !filename!!extension!"
ECHO 파일 이름 변경: %%F -> !newfilename!
REN "%%F" "!newfilename!"
) ELSE (
REM 이미 날짜가 포함된 경우 건너뜀
ECHO 이미 날짜가 포함된 파일: %%F
)
)
REM 끝
ECHO 작업이 완료되었습니다.
PAUSE
```
### 주요 변경 사항
1. **`FOR %%F IN (%*)`**: `SendTo`에 드래그한 모든 파일을 처리하기 위해 사용했습니다.
2. **날짜 확인 로직**:
- `ECHO !filename! | FIND "%yymmdd%" >NUL`을 사용해 파일 이름에 오늘 날짜가 포함되어 있는지 확인합니다.
- 포함되어 있지 않으면 이름을 변경합니다.
3. **`SETLOCAL ENABLEDELAYEDEXPANSION`**: 배치 파일 내에서 변수 값을 동적으로 변경하고 사용할 수 있도록 설정했습니다.
4. **파일 처리 후 메시지 출력**: 변경된 파일과 이미 날짜가 포함된 파일을 구분하여 출력합니다.
### 사용 방법
1. 위 코드를 `날짜삽입.bat`로 저장합니다.
2. `shell:sendto` 경로에 해당 파일을 복사합니다.
3. 파일 여러 개를 선택하고 마우스 오른쪽 -> 보내기 -> `날짜삽입.bat`을 선택합니다.
이제 여러 파일을 한 번에 처리할 수 있으며, 이미 날짜가 포함된 파일은 건너뛰게 됩니다.
라고 하네요