Skip to content

Wget:DownloadImage

한 페이지 안의 전체 이미지를 다운로드 받는 배치파일 샘플.

@echo off

IF "%1" == "" (
ECHO Parameter error.
EXIT /B 1
)

SET SITE=%1
SET "WORKING=%CD%"
SET "TMPDIR=%WORKING%\tmp"
SET "IMGDIR=%WORKING%\img"
SET "MVSOURCE=%TMPDIR%\mv-list.bat"
SET TMPNUM=1

SET "WGET_FLAGS=-E -H -k -K -p"

IF NOT EXIST "%TMPDIR%" MKDIR "%TMPDIR%"
IF NOT EXIST "%IMGDIR%" MKDIR "%IMGDIR%"

CD "%TMPDIR%"
wget.exe %WGET_FLAGS% %SITE%
find.exe . -iname *.jpg -o -iname *.jpeg -o -iname *.png ^
    | sed -e 's/^^\\(.*\\)\\(\\.jpg\\^|\\.jpeg\\^|\\.png\\)^$/mv \\1\\2 %%IMGDIR%%\\/%%TMPNUM%%\\2\\^&\\^&SET \\/A TMPNUM=TMPNUM+1/g' ^
    > %MVSOURCE%
CALL %MVSOURCE%
CD "%IMGDIR%"

SET ARCHIVE_TYPE=zip

REM time.
SET BACKUP_DATE=%date:~0,4%%date:~5,2%%date:~8,2%
SET /A BACKUP_TIME_HOUR=%time:~0,2%
IF %BACKUP_TIME_HOUR%==0 SET BACKUP_TIME_HOUR=00
SET BACKUP_TIME=%BACKUP_TIME_HOUR%%time:~3,2%%time:~6,2%%time:~9,2%
SET BACKUP_NOW=%BACKUP_DATE%-%BACKUP_TIME%

IF "%2" == "" (
SET "OUTPUT_PATH=%WORKING%\image.%BACKUP_NOW%.%ARCHIVE_TYPE%"
) ELSE (
SET "OUTPUT_PATH=%2"
)

7za.exe a -t%ARCHIVE_TYPE% "%OUTPUT_PATH%" "*"

REM clear.
CD %WORKING%
rm.exe -rf image temp
ECHO END (%ERRORLEVEL%).

아래는 bash 스크립트 버전 이다.

#!/bin/sh

if [ ! -z $1 ]; then
SITE=$1
else
echo Parameter error.
exit 1
fi

WORKING=$PWD
TMPDIR=$WORKING/tmp
IMGDIR=$WORKING/img
MVSOURCE=$TMPDIR/mv-list.sh
TMPNUM=1

export IMGDIR
export TMPNUM

WGET_FLAGS="-E -H -k -K -p"

if [ ! -d $TMPDIR ]; then mkdir -p $TMPDIR; fi
if [ ! -d $IMGDIR ]; then mkdir -p $IMGDIR; fi

cd $TMPDIR
wget $WGET_FLAGS $SITE
find . -iname *.jpg -o -iname *.jpeg -o -iname *.png \
    | sed -e 's/^\(.*\)\(\.jpg\|\.jpeg\|\.png\)$/mv \1\2 $IMGDIR\/$TMPNUM\2;TMPNUM=$\(\($TMPNUM+1\)\)/g' \
    > $MVSOURCE
source $MVSOURCE
cd $IMGDIR

if [ ! -z $2 ]; then
FILENAME=$2
else
DATE=`date +%Y%m%d_%H-%M-%S`
FILENAME=image-$DATE.zip
fi

# Unix version:
#zip $WORKING/$FILENAME *
# MinGW version:
7za.exe a -tzip $WORKING/$FILENAME *

# clear.
cd $WORKING
rm -rf $IMGDIR $TMPDIR
echo end.

See also