배치파일 잘 아시는 분 계신가요?
알림
|
페이지 정보
작성일
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 페이지
골드님의 댓글의 댓글
@istree님에게 답글
와우 대단하십니다. 정말 감사드려요!!
차근차근 공부하면서 써먹겠습니다.
다시 한 번 감사합니다^^
차근차근 공부하면서 써먹겠습니다.
다시 한 번 감사합니다^^
Ganggadin님의 댓글
오 역시 고수님들이 계시네요. 이런건 chatgpt 를 활용하시면 좋을것 같아요.
cpp64님의 댓글
Total Commander 에서 Ctrl + M 누르면 파일/폴더 이름 일괄변경하는 기능이 있습니다.
거기서 자주 사용하는 이름 일괄변경 양식을 저장한 후에 재활용하세요.
거기서 자주 사용하는 이름 일괄변경 양식을 저장한 후에 재활용하세요.
까망꼬망1님의 댓글
다크네이머라고 파일이름 일괄로 바꿔주는 유틸리티 있습니다.
예전에 쓸땐 날짜삽입 기능도 있던걸로 기억하는데..한번 요것도 찾아보세요
예전에 쓸땐 날짜삽입 기능도 있던걸로 기억하는데..한번 요것도 찾아보세요
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`을 선택합니다.
이제 여러 파일을 한 번에 처리할 수 있으며, 이미 날짜가 포함된 파일은 건너뛰게 됩니다.
라고 하네요