Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

using ant for non-compiling

Posted on 2006-10-20
4
Medium Priority
?
251 Views
Last Modified: 2010-03-31
In MS windows, I have a set of source files that I convert to another format using a .bat file and then combine into a single file.
I would like to be able to reprocess by only converting the source files that changed, and then combining the files. This seems
really similar to how ant processes javac, but I don't know how to make this work for .bat files instead. How would I create
an ant build.xml to do this?
for example, I have
aaa.txt
bbb.txt
ccc.txt
...
zzz.txt
using convert.bat on each separate file, I create
aaa.out
bbb.out
ccc.out
...
zzz.out
then
copy aaa.out+bbb.out+ccc.out+...+zzz.out myfile
but I only want to convert.bat the .txt files that have changed, so
that if the ggg.out timestamp is after the ggg.txt timestamp, just
use ggg.out.
 
0
Comment
Question by:lfrohman
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 6

Expert Comment

by:valipotor
ID: 17779300
Hi

On native Unix systems, you should be able to run shell scripts directly. On systems running a Unix-type shell (for example, Cygwin on Windows) execute the (command) shell instead - cmd  for batch files, sh for shell scripts - then pass the batch file or shell script (plus any arguments to the script) as a single command, using the /c or -c switch, respectively. See the above section  for example <exec> tasks executing sh. For batch files, use something like:

<exec dir="." executable="cmd" os="Windows NT">
  <arg line="/c test.bat"/>
</exec>


Use properties. Using ant -Dname=value lets you define values for properties on the Ant command line. These properties can then be used within your build file as any normal property: ${name} will put in value.

If you have more questions, read here:

valipotor
0
 
LVL 6

Expert Comment

by:valipotor
ID: 17779302
0
 

Author Comment

by:lfrohman
ID: 17781344
valipotor,
     This doesn't help me at all, I already know how to call a .bat file, the problem is how
to call the batch file on all the input files, but only if they have a newer timestamp.
0
 
LVL 3

Accepted Solution

by:
KnightFire earned 375 total points
ID: 17787209
You could write a custom ant task to do this, then call it from ant. Would that work for you?
See http://ant.apache.org/manual/develop.html for information on writing your own task, you simply extend org.apache.tools.ant.Task, implement an execute method and setters for any attributes you want the task to have.
Then in your ant build file, you map the name of your new task to the class that implements it (the one you created above).

You could create a task that takes a bat file and a path as an argument, and calls the bat on all files in that path, or something similar.
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
Java had always been an easily readable and understandable language.  Some relatively recent changes in the language seem to be changing this pretty fast, and anyone that had not seen any Java code for the last 5 years will possibly have issues unde…
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.
Suggested Courses

704 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question