Solved

Batch folder creation?

Posted on 2013-01-23
13
245 Views
Last Modified: 2013-01-24
I need to:
1. create three folders eg. Folder 1, 2 and 3 within a folder, where there's 200 folders - all folders within this folder, will need the folders 1,2 and 3 created
2. create a log file confirming success/ failure

I've been playing around with the following command via a DOS batch script:

@echo on
H:
cd H:\
echo Making Directories...
mkdir %1\

What's the simplest/ best technique for doing this - DOS or VB Script? I think VB Script would be the best?

Does anyone have a script that can perform this function?
0
Comment
Question by:Osley
  • 7
  • 6
13 Comments
 
LVL 51

Expert Comment

by:Bill Prew
Comment Utility
I think this should work pretty well for you, save it as a BAT file, and edit the SET lines at the top as needed. It will locate all folders under the base directory, and add the new folders specified. It logs success or failure to LOG.TXT.

@echo on
setlocal
set BaseDir=H:
set NewDirs="folder 1","folder 2","folder 3"
(
  echo Making Directories...
  for /D %%A in (%BaseDir%\*.*) do (
    for %%B in (%NewDirs%) do (
      md "%%~A\%%~B" >NUL 2>&1 && (
        echo Created: "%%~A\%%~B"
      ) || (
        echo *ERROR*: "%%~A\%%~B"
      )
    )
  )
)>"log.txt"

Open in new window

~bp
0
 

Author Comment

by:Osley
Comment Utility
Hi. Thanks for the fast response.

I need to ammend the directory from:

set BaseDir=H: to a folder in H, which is H:\Temp Folder\2013. What's the proper syntax? I've added this to the end of BaseDir=H: and one folder was created on the desktop with the three folders contained within.

The log file generated the following:

Making Directories...

C:\Users\Administrator\Desktop>(for %B in ("Excel" "Powerpoint" "Word") do (md "H:\Temp\%~B"   1>NUL 2>&1  && (echo Created: "H:\Temp\%~B" )  || (echo *ERROR*: "H:\Temp\%~B" ) ) )
0
 
LVL 51

Expert Comment

by:Bill Prew
Comment Utility
This should handle that.

@echo off
setlocal
set BaseDir=H:\Temp Folder\2013
set NewDirs="Excel","Powerpoint","Word"
(
  echo Making Directories...
  for /D %%A in ("%BaseDir%\*.*") do (
    for %%B in (%NewDirs%) do (
      md "%%~A\%%~B" >NUL 2>&1 && (
        echo Created: "%%~A\%%~B"
      ) || (
        echo *ERROR*: "%%~A\%%~B"
      )
    )
  )
)>"log.txt"

Open in new window

~bp
0
 

Author Comment

by:Osley
Comment Utility
I've updated the field and encounter the error:
1. A 'home' folder is created on the desktop, with the 3 folders within
2. The log file is as follows:

C:\Users\Administrator\Desktop>(for %B in ("Excel" "Powerpoint" "Word") do (md "H:\Staff\%~B"   1>NUL 2>&1  && (echo Created: "H:\Staff\%~B" )  || (echo *ERROR*: "H:\Staff\%~B" ) ) )

I updated the field with the following:
set BaseDir=H:\Staff Home Folder\2013

The above is the actual directory path..

Thanks again.
0
 
LVL 51

Accepted Solution

by:
Bill Prew earned 300 total points
Comment Utility
See my last post and start from that, I also had to change this line (notice quotes):

for /D %%A in ("%BaseDir%\*.*") do (

~bp
0
 

Author Comment

by:Osley
Comment Utility
Perfect!

Thanks for the script - I should've looked closer at the code update you provided.

Thanks. Much appreciated.
0
Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

 

Author Comment

by:Osley
Comment Utility
I've requested that this question be closed as follows:

Accepted answer: 0 points for Osley's comment #a38812880

for the following reason:

Script performed exactly as desired.
0
 
LVL 51

Expert Comment

by:Bill Prew
Comment Utility
Did you mean to close the question this way.  Normally I would have expected you to select my last script post as the solution and award points?

~bp
0
 

Author Comment

by:Osley
Comment Utility
Apologies. I didn't mean to select it that way...

Thanks for the solution. It's saved loads of time.
0
 

Author Closing Comment

by:Osley
Comment Utility
Solution worked as requested. Saved loads of time because of it.
0
 
LVL 51

Expert Comment

by:Bill Prew
Comment Utility
Welcome, glad that was useful, and thanks for the feedback.

~bp
0
 

Author Comment

by:Osley
Comment Utility
Hi billprew. One more question - I need to modify the script, so that it creates one folder called 'documents' and with this folder, 3 more folders.

Apologies -
0
 
LVL 51

Expert Comment

by:Bill Prew
Comment Utility
I posted that in the related question.

~bp
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Welcome back!  My apologies for taking so long to write part two of this series; it's been a long time coming!  As I promised in Part 1, this article will focus on how to locate those elusive AD properties that you are searching for.  Why is this us…
Welcome, welcome!  If you are new to the series and haven't been following along, please take a brief moment to review the first three installments: Part 1 (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/A_266-VBScri…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

728 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

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now