Re: vsd2svg - Batch file to process vsd files with several pages
- From: Andrey Repin <anrdaemon freemail ru>
- To: julien . guyonnet @ free . fr <dia-list gnome org>
- Subject: Re: vsd2svg - Batch file to process vsd files with several pages
- Date: Fri, 28 Jun 2013 17:29:47 +0400
Greetings, julien . guyonnet @ free . fr!
Hi,
The following batch file may be made available on the page http://dia-installer.de/vsd2svg/index.html
It helps in processing vsd files with large number of pages
@ECHO OFF
REM Name: vsdtosvg_all_slides.bat
REM Author: Julien GUYONNET, June 2013, julien dot guyonnet at free.fr
REM Usage: vsdtosvg_all_slides.bat input.vsd
REM Output: As many svg files as pages in input.vsd
REM Copyright: None
REM Set variables
SET Vsd2svgpath="D:\documents and Settings\SESA34631\Desktop\vsd2svg-0.0.3"
SET Vsd2svgpath=%~dp0
...
First, never quote variable values, second, why use hardcoded paths, if it's
way too easy to get what you want right from the system?
SET Inputfile=%~f1
SET Nbofpages=
SET i=
SET j=
REM Change working directory
cd /D %Vsd2svgpath%
What for? Especially "what for", since you CHDIR only to check if the program
is there?
Leave it alone.
REM Check if exe file is present
IF NOT EXIST "vsd2svg.exe" (
IF NOT EXIST "%Vsd2svgpath%/vsd2svg.exe" (
ECHO ERROR 0: vsd2svg.exe is not in the current directory (%Vsd2svgpath%)
PAUSE
GOTO :theend
)
REM Check an argument was given
Useless check, since you test for file existence afterward.
Nonetheless,
IF "%~f1"=="" (
IF "%~1"=="" (
ECHO ERROR 1: No argument given
PAUSE
GOTO :theend
)
REM Check if input file exists
IF NOT EXIST "%Inputfile%" (
IF NOT EXIST "%~1" (
ECHO ERROR 2: The file %Inputfile% doesn't exist
PAUSE
GOTO :theend
)
REM Find the number of pages
FOR /F "tokens=1,2 delims= " %%i in ('vsd2svg.exe "%Inputfile%"') do SET Nbofpages=%%i
FOR /F "tokens=1,2 delims= " %%i in ('"%Vsd2svgpath%/vsd2svg.exe" "%~1"') do SET Nbofpages=%%i
REM Check if nb of page is valid in input file
IF %Nbofpages% LSS 1 (
ECHO ERROR 3: vsd2svg.exe less than 1 page in %Inputfile%
PAUSE
GOTO :theend
)
REM Display the number of pages
ECHO Input file %Inputfile% has %Nbofpages% page(s).
Dumping unrequested shit on console is a bad habit.
REM Check if the ouput files are not already existing
This is hardly necessary.
FOR /L %%j IN (1,1,%Nbofpages%) DO (
IF EXIST "%Inputfile%_Page_%%j.svg" (
ECHO ERROR 4: %Inputfile%_Page_%%j.svg already exists
PAUSE
GOTO :theend
)
)
REM process the files
FOR /L %%j IN (1,1,%Nbofpages%) DO (
vsd2svg.exe "%Inputfile%" "%Inputfile%_Page_%%j.svg" %%j
ECHO Page %%j of %Nbofpages%: %Inputfile%_Page_%%j.svg file created
)
:theend
REM Unset variables
SET Vsd2svgpath=
SET Inputfile=
SET Nbofpages=
SET i=
SET j=
--
WBR,
Andrey Repin (anrdaemon freemail ru) 28.06.2013, <14:36>
Sorry for my terrible english...
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]