@ECHO OFF REM ------------------------------------------------------------------ REM - REM - exiftool을 사용하여 사진 파일의 GPS, 시간 및 기타 정보를 REM - 일괄 변경하는 스크립트 REM - REM ------------------------------------------------------------------ REM ------------------------------------------------------------ REM CODEPAGE를 UTF-8로 변경 REM ------------------------------------------------------------ CHCP 65001 1> NUL 2> NUL CLS REM ------------------------------------------------------------------ REM - 기본 설정값 REM ------------------------------------------------------------------ SET "EXIFTOOL_PATH=C:\PortableApps\cmd_exiftool" SET "EXIFTOOL=%EXIFTOOL_PATH%\bin\exiftool.exe" SET "CONFIG_FILE=%EXIFTOOL_PATH%\config.txt" SET "PATH=%EXIFTOOL_PATH%\bin;%PATH%" REM ------------------------------------------------------------------ REM - 명령행 인수 처리 REM ------------------------------------------------------------------ SET ARGC=0 FOR %%X IN (%*) DO SET /A ARGC+=1 IF %ARGC% LSS 1 ( CALL :FUNC_USAGE %0 EXIT /B 1 ) REM ------------------------------------------------------------------ REM - 설정파일 파싱 REM ------------------------------------------------------------------ FOR /F "EOL=# TOKENS=1,2 DELIMS==" %%A IN (%CONFIG_FILE%) DO ( IF %%A==MAKER SET MAKER=%%B IF %%A==MODEL SET MODEL=%%B IF %%A==ARTIST SET ARTIST=%%B IF %%A==SOFTWARE SET SOFTWARE=%%B IF %%A==COPYRIGHT SET COPYRIGHT=%%B IF %%A==DATETIME SET DATETIME=%%B IF %%A==LATITUDE SET LATITUDE=%%B IF %%A==LONGITUDE SET LONGITUDE=%%B ) REM ------------------------------------------------------------------ REM - GPS 정보 변경 REM ------------------------------------------------------------------ IF "%LATITUDE%" NEQ "" ( IF "%LONGITUDE%" NEQ "" ( CALL :FUNC_EXIFTOOL_SET_GPS %1 ) ) REM ------------------------------------------------------------------ REM - 날짜 정보 변경 REM ------------------------------------------------------------------ IF "%DATETIME%" NEQ "" ( CALL :FUNC_EXIFTOOL_SET_DATETIME %1 ) REM ------------------------------------------------------------------ REM - 기타 정보 변경 REM ------------------------------------------------------------------ SET "EXIFTOOL_MISC_OPT=" IF "%MAKER%" NEQ "" SET EXIFTOOL_MISC_OPT=%EXIFTOOL_MISC_OPT% -make="%MAKER%" IF "%MODEL%" NEQ "" SET EXIFTOOL_MISC_OPT=%EXIFTOOL_MISC_OPT% -model="%MODEL%" IF "%ARTIST%" NEQ "" SET EXIFTOOL_MISC_OPT=%EXIFTOOL_MISC_OPT% -artist="%ARTIST%" IF "%SOFTWARE%" NEQ "" SET EXIFTOOL_MISC_OPT=%EXIFTOOL_MISC_OPT% -creatortool="%SOFTWARE%" -software="%SOFTWARE%" IF "%COPYRIGHT%" NEQ "" SET EXIFTOOL_MISC_OPT=%EXIFTOOL_MISC_OPT% -copyright="%COPYRIGHT%" CALL :FUNC_EXIFTOOL_SET_INFO %1 REM ------------------------------------------------------------------ REM - 정보 출력 REM ------------------------------------------------------------------ CALL :FUNC_EXIFTOOL_LIST %1 :EXIT_MAIN PAUSE EXIT /B %ERRORLEVEL% REM ------------------------------------------------------------------ REM - REM - 함수: exiftool 시간 설정 REM - REM ------------------------------------------------------------------ :FUNC_EXIFTOOL_SET_DATETIME ECHO ------------------------------------------------------------------ ECHO - 시간 정보를 변경합니다. (%DATETIME%) ECHO - 시간은 GMT+9(서울)로 변경 ECHO ------------------------------------------------------------------ %EXIFTOOL% -overwrite_original -datetimeoriginal="%DATETIME%" "%1" %EXIFTOOL% -overwrite_original "-datetimeoriginal-=9" "%1" %EXIFTOOL% -overwrite_original "-gpstimestamp<$datetimeoriginal" "%1" %EXIFTOOL% -overwrite_original "-gpsdatestamp<$datetimeoriginal" "%1" %EXIFTOOL% -overwrite_original "-datetimeoriginal+=9" "%1" EXIT /B /0 REM ------------------------------------------------------------------ REM - REM - 함수: exiftool GPS 정보 REM - REM ------------------------------------------------------------------ :FUNC_EXIFTOOL_SET_GPS ECHO ------------------------------------------------------------------ ECHO - GPS 정보를 변경합니다. ECHO - 위도:"%LATITUDE%", 경도:"%LONGITUDE%" ECHO ------------------------------------------------------------------ REM 문자열 양옆 불필요한 스페이스 없애기 FOR /F "TOKENS=* DELIMS= " %%A IN ("%LATITUDE%") DO SET LATITUDE=%%A FOR /F "TOKENS=* DELIMS= " %%A IN ("%LONGITUDE%") DO SET LONGITUDE=%%A %EXIFTOOL% -overwrite_original -GPSLatitudeRef=N -GPSLatitude=%LATITUDE% -GPSLongitudeRef=E -GPSLongitude=%LONGITUDE% "%1" rem %EXIFTOOL% -l "%1" EXIT /B /0 REM ------------------------------------------------------------------ REM - REM - 함수: exiftool 정보 보기 REM - REM ------------------------------------------------------------------ :FUNC_EXIFTOOL_LIST %EXIFTOOL% -l "%1" EXIT /B /0 REM ------------------------------------------------------------------ REM - REM - 함수: exiftool 기타 정보 REM - REM ------------------------------------------------------------------ :FUNC_EXIFTOOL_SET_INFO ECHO ------------------------------------------------------------------ ECHO - 기타 정보를 변경합니다. ECHO ------------------------------------------------------------------ ECHO %EXIFTOOL% -overwrite_original %EXIFTOOL_MISC_OPT% "%1" %EXIFTOOL% -overwrite_original %EXIFTOOL_MISC_OPT% "%1" EXIT /B /0 REM ------------------------------------------------------------------ REM - REM - 함수: 사용법 출력 REM - REM ------------------------------------------------------------------ :FUNC_USAGE ECHO %1: exiftool helper ECHO config file: %CONFIG_FILE% ECHO. ECHO Usage: ECHO %1 ^<wildcard^> ECHO ex) %1 D:\0_tmp\*.jpg PAUSE EXIT /B /0
###################################################################### # # exiftool로 일괄 설정할 값을 여기에 명시한다. # ###################################################################### # Maker 설정 (-make="samsung") MAKER=OEM(China) # 카메라의 모델명을 설정한다. (-model='Kodak Hawkeye Instamatic") MODEL=SJ9000X ELITE PRO2 # 찍은 사람 (-artist="Eric Johnson") ARTIST= # 소프트웨어 (-software="Adobe Photoshop CS3") SOFTWARE=DV681 20191016 V1.0 # Copyright (-copyright="Copyright(c) 2020 Eric Johnson, all rights reserved.") #COPYRIGHT= # 날짜를 설정한다. #DATETIME=2023:6:23 22:39:0 # 위도를 설정한다 (지구상에서 적도를 기준으로 북쪽 또는 남쪽). LATITUDE=37.6895554 # 경도를 설정한다. (지구상에서 본초 자오선을 기준으로 동쪽 또는 서쪽) LONGITUDE=126.875444