
Tested with Inkscape 0.9.x - 1.0.x ✅
- Download
_InkscapeBatchConvert.bat - Put it in the folder where you have files you wish to convert.
- Then double click the file to start it.


Tested with Inkscape 0.9.x - 1.0.x ✅
_InkscapeBatchConvert.bat
| @Echo off | |
| setlocal ENABLEDELAYEDEXPANSION | |
| if exist "C:\Program Files\Inkscape\bin\inkscape.exe" ( | |
| set "inkscapePath=C:\Program Files\Inkscape\bin\inkscape.exe" | |
| ) else ( | |
| set "inkscapePath=C:\Program Files\Inkscape\inkscape.exe" | |
| ) | |
| set validInput1=svg | |
| set validInput2=pdf | |
| set validInput3=eps | |
| set validInput4=emf | |
| set validInput5=wmf | |
| set validOutput1=eps | |
| set validOutput2=pdf | |
| set validOutput3=png | |
| set validOutput4=svg | |
| FOR /F "tokens=* USEBACKQ" %%g IN (`"%inkscapePath%" --version`) do (SET "inkscapeVersion=%%g") | |
| set /a inkscapeMajorVersion=%inkscapeVersion:~9,1% | |
| echo. | |
| echo This script allows you to convert all files in this folder from one file type to another. | |
| echo Running with %inkscapeVersion% | |
| echo (type q to quit at any question) | |
| echo. | |
| set targetFolder=%%~d%%~p | |
| echo target folder: %targetFolder% | |
| set valid=0 | |
| echo Allowed file types for source: %validInput1%, %validInput2%, %validInput3%, %validInput4%, %validInput5% | |
| :whileInNotCorrect | |
| set /p sourceType=What file type do you want to use as a source? | |
| if "%sourceType%" EQU "%validInput1%" set valid=1 | |
| if "%sourceType%" EQU "%validInput2%" set valid=1 | |
| if "%sourceType%" EQU "%validInput3%" set valid=1 | |
| if "%sourceType%" EQU "%validInput4%" set valid=1 | |
| if "%sourceType%" EQU "%validInput5%" set valid=1 | |
| if "%sourceType%" EQU "q" exit /b | |
| if %valid% EQU 0 ( | |
| echo Invalid input! Please use one of the following: %validInput1%, %validInput2%, %validInput3%, %validInput4%, %validInput5% | |
| goto :whileInNotCorrect | |
| ) | |
| echo. | |
| set valid=0 | |
| echo Allowed file types for output: %validOutput1%, %validOutput2%, %validOutput3%, %validOutput4% | |
| :whileOutNotCorrect | |
| set /p outputType=What file type do you want to convert to? | |
| if "%outputType%" EQU "%validOutput1%" set valid=1 | |
| if "%outputType%" EQU "%validOutput2%" set valid=1 | |
| if "%outputType%" EQU "%validOutput3%" set valid=1 | |
| if "%outputType%" EQU "%validOutput4%" set valid=1 | |
| if "%outputType%" EQU "q" exit /b | |
| if %valid% EQU 0 ( | |
| echo Invalid input! Please use one of the following: %validOutput1%, %validOutput2%, %validOutput3%, %validOutput4% | |
| goto :whileOutNotCorrect | |
| ) | |
| if "%outputType%" EQU "%sourceType%" ( | |
| echo Input and Output are the same, no point in doing anything. Exiting... | |
| exit /b | |
| ) | |
| echo. | |
| set toDelOrNot=n | |
| if "%sourceType%" NEQ "pdf" ( | |
| if "%outputType%" EQU "%validOutput4%" ( | |
| set valid=0 | |
| :whilePdfDelNotCorrect | |
| set /p toDelOrNot=EPS to SVG also generates pdfs, delete these after conversion? (y/n^) | |
| if "%toDelOrNot%" EQU "y" set valid=1 | |
| if "%toDelOrNot%" EQU "n" set valid=1 | |
| if "%toDelOrNot%" EQU "q" exit /b | |
| if %valid% EQU 0 ( | |
| echo Invalid input! Please type either y or n. | |
| goto :whilePdfDelNotCorrect | |
| ) | |
| ) | |
| ) | |
| :: Set DPI for exported file | |
| :whileNotValidDpiNumber | |
| set /p dpi=With what dpi should it be exported (e.g. 300)? | |
| if "%dpi%" EQU "q" exit /b | |
| IF %dpi% NEQ +%dpi% ( | |
| echo Invalid input! Please input an actual number. | |
| goto :whilenotValidDpiNumber | |
| ) | |
| echo. | |
| :: count how many files we need to convert before converting! | |
| set /a total=0 | |
| for /R %%i in (*.%sourceType%) do ( | |
| set /a total=total+1 | |
| ) | |
| echo Conversion started. Will do %total% file(s). | |
| echo. | |
| set /a count=0 | |
| :: Running through all files found with the defined ending | |
| if %inkscapeMajorVersion% EQU 0 ( | |
| :: Inkscape 0.9.x and older | |
| for /R %%i in (*.%sourceType%) do ( | |
| set /a count=count+1 | |
| echo %%i -^> %%~di%%~piout\%%~ni.%outputType% ^[!count!/%total%^] | |
| if "%outputType%" NEQ "%validOutput4%" ( | |
| "%inkscapePath%" --without-gui --file="%%i" --export-%outputType%="%%~di%%~piout\%%~ni.%outputType%" --export-dpi=%dpi% | |
| ) else ( | |
| if "%sourceType%" NEQ "pdf" ( | |
| "%inkscapePath%" --without-gui --file="%%i" --export-pdf="%%~di%%~piout\%%~ni.pdf" --export-dpi=%dpi% | |
| ) | |
| "%inkscapePath%" --without-gui -z -f "%%i" -l "%%~di%%~piout\%%~ni.%validOutput4%" | |
| if "%toDelOrNot%" EQU "y" ( | |
| del "%%~ni.pdf" /f /q | |
| ) | |
| ) | |
| ) | |
| ) else ( | |
| :: Inkscape 1.0 and newer | |
| for /R %%i in (*.%sourceType%) do ( | |
| set /a count=count+1 | |
| echo %%i -^> %%~di%%~piout\%%~ni.%outputType% ^[!count!/%total%^] | |
| if "%outputType%" NEQ "%validOutput4%" ( | |
| "%inkscapePath%" --export-filename="%%~di%%~piout\%%~ni.%outputType%" --export-dpi=%dpi% "%%i" | |
| ) else ( | |
| if "%sourceType%" NEQ "pdf" ( | |
| "%inkscapePath%" --export-filename="%%~di%%~piout\%%~ni.pdf" --export-dpi=%dpi% "%%i" | |
| ) | |
| "%inkscapePath%" --export-filename="%%~di%%~piout\%%~ni.svg" "%%~ni.pdf" | |
| if "%toDelOrNot%" EQU "y" ( | |
| del "%%~ni.pdf" /f /q | |
| ) | |
| ) | |
| ) | |
| ) | |
| echo. | |
| echo %count% file(s) converted from %sourceType% to %outputType%! | |
| echo. | |
| pause |