As I coach baseball in a cold weather state, I have evolved my indoor practice drills and routines over time to keep practicing no matter what the weather offers. Some of the things I have found effective are to keep drills under 10 minutes and make sure to break the team up into groups of no more than 4. I found this to be work to keep them focused for the hour and a half I have them twice a week. It can be difficult to find drills to do indoors, especially hitting drills if a batting cage is not available. The drills we have always done are soft toss and tee work into a portable hitting net. These are great drills for swing mechanics and we do these every practice. I also feel it is important to start working on timing and so a few years ago purchased the JUGS Lite Flite Machine for my indoor hitting. This is a great machine when a batting cage does not exist.
For my particular situation we have a divider down the middle of the gymnasium we can pull to separate a practice. We divide the stations up, setting pitching/catching/defensive work on one side of the divider and hitting on the other side of the divider. We set up a portable hitting net (such as the <a href="http://www.unique-sports.com/products/instant-screen-hitting-net">Jugs Instant Screen</a>) at one end to do our soft toss and tee work and then set the Lite Flite Machine up at the other side. The Lite Flite Machine uses a “spongy” type indoor ball that will not cause any damage to your walls (or anyone hit with one!). We usually set the machine approximately 30 feet away. We have groups of four, so two boys will shag the balls, one boy warms up, and one boy hits off the machine. We have them bunt two and then swing away at about 15 pitches. We have found this helps get their timing down pretty quickly. The second round they do the machine is set on curve balls. We found this is a way for them to see a curve ball and not have any fear of getting hit.
Another tip is to try to spend 15 minutes or so doing some type of game or something fun. We play games the last 15 minutes of every practice using the Lite Flite Machine. We split the boys up into two teams and have them hit off the machine using the walls to judge if it is a single, double, triple, home run or an out. The team not hitting is in the field shagging the balls. It goes pretty fast and the kids enjoy the competitive nature of it, while getting some extra swings.