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

Lv.1 골드 (211.♡.113.184)

2025년 1월 25일 AM 08:44 · 수정됨(19:35)

조회 693 공감 0

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


제가 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%"


답변주시면 감사드리겠습니다.


풍성하고 즐거운 명절되십시오.^^

댓글 (6)

  • istree

    istree Lv.1

    25.01.25 · 122.♡.167.80

    여러 파일을 한 번에 처리할 수 있도록 배치 파일을 수정하면 됩니다. 현재 코드에서는 `%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`을 선택합니다.

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

    라고 하네요
  • 골드

    골드 Lv.1 → istree 작성자

    25.01.25 · 211.♡.113.184

    와우 대단하십니다. 정말 감사드려요!!
    차근차근 공부하면서 써먹겠습니다.
    다시 한 번 감사합니다^^
  • 골드

    골드 Lv.1 → istree 작성자

    25.01.25 · 211.♡.113.184

    정상작동하지는 않네요... 좀 더 공부해봐야 겠습니다.
  • Ganggadin

    Ganggadin Lv.1

    25.01.25 · 211.♡.82.61

    오 역시 고수님들이 계시네요. 이런건 chatgpt 를 활용하시면 좋을것 같아요.
  • cpp64

    cpp64 Lv.1

    25.01.25 · 59.♡.222.35

    Total Commander 에서 Ctrl + M 누르면 파일/폴더 이름 일괄변경하는 기능이 있습니다.
    거기서 자주 사용하는 이름 일괄변경 양식을 저장한 후에 재활용하세요.
  • 까망꼬망

    까망꼬망 Lv.1

    25.01.25 · 61.♡.120.114

    다크네이머라고 파일이름 일괄로 바꿔주는 유틸리티 있습니다.
    예전에 쓸땐 날짜삽입 기능도 있던걸로 기억하는데..한번 요것도 찾아보세요

댓글을 작성하려면 이 필요합니다.