배치파일 잘 아시는 분 계신가요?

알림
|
X

페이지 정보

작성자 골드 211.♡.113.184
작성일 2025.01.25 08:44
397 조회
3 추천

본문

안녕하세요? 배치파일 제작해서 사용하다 더 나은 방법이 없을까해서 질문드립니다.


제가 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님의 댓글

작성자 istree (122.♡.167.80)
작성일 01.25 08:52
여러 파일을 한 번에 처리할 수 있도록 배치 파일을 수정하면 됩니다. 현재 코드에서는 `%1`로 한 파일만 처리하기 때문에, 여러 파일을 처리하려면 **`for` 루프**를 사용해야 합니다. 또한, 오늘 날짜인지 확인하고 이미 날짜가 붙어 있다면 건너뛰는 로직도 추가해야 합니다.

다음은 수정된 코드입니다:

### 수정된 `날짜삽입.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`을 선택합니다.

이제 여러 파일을 한 번에 처리할 수 있으며, 이미 날짜가 포함된 파일은 건너뛰게 됩니다.

라고 하네요

골드님의 댓글의 댓글

대댓글 작성자 골드 (211.♡.113.184)
작성일 01.25 09:08
@istree님에게 답글 와우 대단하십니다. 정말 감사드려요!!
차근차근 공부하면서 써먹겠습니다.
다시 한 번 감사합니다^^

골드님의 댓글의 댓글

대댓글 작성자 골드 (211.♡.113.184)
작성일 01.25 09:16
@istree님에게 답글 정상작동하지는 않네요... 좀 더 공부해봐야 겠습니다.

Ganggadin님의 댓글

작성자 Ganggadin (211.♡.82.61)
작성일 01.25 09:46
오 역시 고수님들이 계시네요. 이런건 chatgpt 를 활용하시면 좋을것 같아요.

cpp64님의 댓글

작성자 cpp64 (59.♡.222.35)
작성일 01.25 09:53
Total Commander 에서 Ctrl + M 누르면 파일/폴더 이름 일괄변경하는 기능이 있습니다.
거기서 자주 사용하는 이름 일괄변경 양식을 저장한 후에 재활용하세요.

까망꼬망1님의 댓글

작성자 까망꼬망1 (61.♡.120.114)
작성일 01.25 19:35
다크네이머라고 파일이름 일괄로 바꿔주는 유틸리티 있습니다.
예전에 쓸땐 날짜삽입 기능도 있던걸로 기억하는데..한번 요것도 찾아보세요
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색