-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathextract.bat
87 lines (67 loc) · 1.82 KB
/
extract.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
@ECHO OFF
::--------------------------------------------------------------------------------------
SET source=""
SET outputdir=""
SET wordconv=""
::--------------------------------------------------------------------------------------
::vars
SET tempfolder="%temp%\WordImgsExtractor"
SET res=0
:MakeOutputDir
MKDIR %outputdir%
CLS
:CopyToTemp
XCOPY /E /I /Y %source% %tempfolder%
CLS
:ConvertDocToDocx
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%tempfolder%\*.doc"') DO (
ECHO Processing %%~nF
%wordconv% -oice -nme "%%~fF" "%%~fFx"
)
CLS
SETLOCAL ENABLEDELAYEDEXPANSION
:ExtractPNG
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%tempfolder%\*.docx"') DO (
"C:\Program Files\7-Zip\7z.exe" x "%%~fF" -aou -o"%%~pF\%%~nF" *.png -r > nul
SET c=0
FOR /F "TOKENS=*" %%E IN ('DIR /S /B "%%~dF%%~pF%%~nF\word\media\*.png"') DO (
SET /a c+=1
SET imgname=%%~nF_!c!%%~xE
REN "%%~fE" "!imgname!"
COPY "%%~dE%%~pE\!imgname!" "%outputdir%"
)
CLS
)
:ExtractJPG
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%tempfolder%\*.docx"') DO (
"C:\Program Files\7-Zip\7z.exe" x "%%~fF" -aou -o"%%~pF\%%~nF" *.jpg -r > nul
SET c=0
FOR /F "TOKENS=*" %%E IN ('DIR /S /B "%%~dF%%~pF%%~nF\word\media\*.jpg"') DO (
SET /a c+=1
SET imgname=%%~nF_!c!%%~xE
REN "%%~fE" "!imgname!"
COPY "%%~dE%%~pE\!imgname!" "%outputdir%"
)
CLS
)
:ExtractJPEG
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%tempfolder%\*.docx"') DO (
"C:\Program Files\7-Zip\7z.exe" x "%%~fF" -aou -o"%%~pF\%%~nF" *.jpeg -r > nul
SET c=0
FOR /F "TOKENS=*" %%E IN ('DIR /S /B "%%~dF%%~pF%%~nF\word\media\*.jpeg"') DO (
SET /a c+=1
SET imgname=%%~nF_!c!%%~xE
REN "%%~fE" "!imgname!"
COPY "%%~dE%%~pE\!imgname!" "%outputdir%"
)
CLS
)
ENDLOCAL
:DeleteTemp
RMDIR /S /Q "%tempfolder%"
:EchoResult
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%outputdir%"') DO (
SET /A res+=1
)
ECHO %res% images extracted
PAUSE