Solved

Need a Script to Create Multiple Folders on a Server

Posted on 2011-09-14
8
524 Views
Last Modified: 2012-05-12
Hello all,
 I stood up a file server running Server 2008 that I need to create approximately 157 individual folders on the will reside in a "Backups" directory that I have also created. I can't create the folders through a logon script so I need to do it locally on the machine. Does anyone have a script to simply create and name a bunch of folders?
0
Comment
Question by:BoxunloX
8 Comments
 
LVL 5

Expert Comment

by:KGNickl
ID: 36536160
Not able to help in VB, but I can provide a perl script to do that. All you would have to do is install ActivePerl (http://www.activestate.com/) and your ready to go.

The script uses a CSV input file and will create as many or few folder as possible. You just input the full path you want the folder created at and your good to go. The .bat is optional, but makes it easier to run the script. Hope this helps if no one provides any VB for you.

Create a file and put the below code in (name the file create_folders.pl)
 
#!/usr/local/bin/perl

use strict;

my $file = 'folders.csv';

open (F, $file) || die ("Could not open $file!");

while (my $line = <F>){

  my ($folder) = split ',', $line;
  print "Creating folder ($folder)\n";
  mkdir "$folder";
  if(-d $folder){
    print "Folder created\n";
  }else{
    print "Failed to create\n";
  }

}

close (F);
exit;

Open in new window


Create a file and put the below code in (name the file folder.csv)
 
C:\folder1,
C:\folder2,
C:\folder3,
C:\folder4,
C:\folder5

Open in new window


Create a file and put the below code in (name the file create_folders.pl)
 
perl create_folders.pl
pause

Open in new window

0
 
LVL 5

Expert Comment

by:KGNickl
ID: 36536191
One last not. If you don't want to specify a directory to create the folder in and just a list of folders you could do that as well and just copy and run the script in the directory you want the folder to be created in. So if you copied all 3 files to C:\temp\ and use the below .csv file it would create:

C:\temp\folder1\
C:\temp\folder2\
C:\temp\folder3\
C:\temp\folder4\
C:\temp\folder5\

Create a file and put the below code in (name the file folder.csv)
folder1,
folder2,
folder3,
folder4,
folder5

Open in new window

0
 
LVL 1

Accepted Solution

by:
BoxunloX earned 0 total points
ID: 36536583
Thanks KGNickl for the assistance! I actually found a one-liner CMD command that did the trick. I simply  put the .CSV file in the directory that I wanted to create the folders in, opened the command prompt, and typed the following:

 
FOR /F "delims=~" %f in (usernames.txt) DO MD "%f"

Open in new window

0
 
LVL 1

Author Closing Comment

by:BoxunloX
ID: 36558755
I found a simple one-line command that did exactly what I was looking for.
0
Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 
LVL 52

Expert Comment

by:Bill Prew
ID: 36536619
Easy enough to do in a simple Batch script (BAT) using the MD command, like:

md c:\dir1
md c:\dir2
. . .

my question is, is there any logic to the names of the folders that you need to create, or is it a list in a txt file or something.  If so we could enhance the BAT script to be smarter and save work.  But need to better understand the set of folders you need to create.

~bp
0
 
LVL 14

Expert Comment

by:Don Thomson
ID: 36536649
For Something like that I would just use something like Excel and build a quick and dirty batch file
Final                                    ColB             ColC               ColD
MD c:\backup\Folder1\      MD       c:\backup\      Folder1\

Column A  use the formula =+b1&C1&D1
in Column b type MD plus a space
in column c your master Backup Path
Col D  is where you put the folder names you want
Fill in this list first
Then Copy Contents of A1, b1 and C1 down to fill in the three column til you have everything covered

Then do File SaveAs - Type TXT - Name it Myfolders.txt
Close the excel Spreadsheet then open the Myfolders.txt
The formulas will have changed to the real words - just delete column B, C &D
Then resave the file - Type txt  to Folder.txt

Put it in the root folder of C:\
then in a command box  (Run CMD)  type ren folders.txt *.bat
then just type myfolders and the folders will be created

0
 

Expert Comment

by:robtk
ID: 36536695
Try this vbScript

Open in new window

' Usage: cscript CreateFolders.vbs inputfile.csv
' One absolute path per line
On Error Resume Next
Dim arrFolderName(200), i, objArgs, objFSO, strNextLine, x
Const ForReading = 1
Set objArgs = WScript.Arguments
Set objFSO = CreateObject("Scripting.FileSystemObject")
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Check if inputfile exists
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
if not (objFSO.FileExists(objArgs(0))) Then
      wscript.echo "Can't find "& objArgs(0) & vbcrlf & "This file must reside in the same dir as this script."
      WScript.Quit(1)
end If

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Read input file into an array
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set objTextFile = objFSO.OpenTextFile(objArgs(0), ForReading)
i = 0
Do While objTextFile.AtEndOfStream <> True
    strNextLine = objTextFile.Readline
    If(Len(strNextLine)<>0)Then      'If line isn't null. More error checking maybe needed.
          arrFolderName(i) = strNextLine
          WScript.Echo i & "=" & strNextLine
    End If
    i = i + 1
Loop
objTextFile.close

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Main loop - Create the folders if they don't exist
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For x = 0 To i - 1
      If Not objFSO.FolderExists(arrFolderName(x)) Then
          Set objFolder = objFSO.CreateFolder(arrFolderName(x))
    Else
          WScript.Echo arrFolderName(x) & " already exists."
      End If
Next

Set objFSO = Nothing
WScript.Quit

Open in new window

0
 
LVL 1

Expert Comment

by:expert20
ID: 36543788

' Main script
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
filepath = " C:\Backups\ "
call Create_folder(filepath)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Function to Create 157 folders, parameter should be filepath'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function Create_folder(filepath)
Set fso = createobject("scripting.filesystemobject")
For i = 1 to 157
fso.createfolder filepath&"Folder"&i
next
set fso = nothing
End Function

0

Featured Post

[Webinar] Disaster Recovery and Cloud Management

Learn from Unigma and CloudBerry industry veterans which providers are best for certain use cases and how to lower cloud costs, how to grow your Managed Services practice in IaaS clouds, and how to utilize public cloud for Disaster Recovery

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Moving to a Virtual from an SQL cluster, best practices? 5 75
Need to test AD authentication 3 49
SBS 2007 remove AD ? 10 22
SBS 2008 Standard OEL 2 14
YESTERDAY YESTERDAY.BAT is inspired by a previous article I wrote entitled: TOMORROW.BAT (http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/MS_DOS/A_4196-Advanced-Batch-File-Programming-TOMORROW-BAT.html). The crux of this batch f…
Being a system administrator some time we require to do things remotely, one of them is installing software. Here I am going to tell you how to install software through wmic (Windows management instrument console). I am not at all saying that this i…
This tutorial will walk an individual through locating and launching the BEUtility application to properly change the service account username and\or password in situation where it may be necessary or where the password has been inadvertently change…
To efficiently enable the rotation of USB drives for backups, storage pools need to be created. This way no matter which USB drive is installed, the backups will successfully write without any administrative intervention. Multiple USB devices need t…

867 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

21 Experts available now in Live!

Get 1:1 Help Now