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

x
?
Solved

Create a folder on a remote server using VBScript

Posted on 2004-04-05
8
Medium Priority
?
3,032 Views
Last Modified: 2007-12-19
Hi all,

I need to create a folder on a remote server using the FSO in VBScript.

There is a trusted connection between the two servers, however I am running the code on server a, and need it to create the folder on server b before moving to the next step in my process.

I've experimented with the following code:

Sub MakePathRemote(strDirectory, pbHeader)
    Dim intLen
    Dim intDirLen
    Dim objFSORemote
   
    Set objFSORemote = WScript.CreateObject("Scripting.FileSystemObject")
   
    If pbHeader Then
            WriteToOutFile "Creating Folder on remote server " & strDirectory, True, False
      End If
   
    intLen = 4
    If Right(strDirectory, 1) <> "\" Then strDirectory = strDirectory + "\"
    Do While objFSORemote.FolderExists(strDirectory) = False
        intDirLen = InStr(intLen, strDirectory, "\")
        If objFSORemote.FolderExists(Left(strDirectory, intDirLen)) = False Then
              objFSORemote.CreateFolder Left(strDirectory, intDirLen - 1)
        End If
        intLen = intDirLen + 1
    Loop
End Sub

with the value of strDirectory set as '\\<serverb>\folder' but had no luck. The script runs successfully, but doesn't seem to have created the folder anywhere (not even locally)!
0
Comment
Question by:oafcmetty
[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
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 67

Expert Comment

by:sirbounty
ID: 10756175
Try replacing these two:

Set objFSORemote = CreateObject("Scripting.FileSystemObject")
objFSORemote.CreateFolder (strDirectory)

instead of this:   Set objFSORemote = WScript.CreateObject("Scripting.FileSystemObject")

And then append this towards the bottom...
set objFSO=nothing
0
 

Author Comment

by:oafcmetty
ID: 10756196
No joy I'm afraid...
0
 
LVL 8

Assisted Solution

by:fozylet
fozylet earned 500 total points
ID: 10756514
MakePathRemote "\\efunds\AMS\ss\ab\cd"

Sub MakePathRemote(strDirectory)
    Dim objFSORemote
    Dim iDir
    Dim dirArray
    Dim curPath

    Set objFSORemote = WScript.CreateObject("Scripting.FileSystemObject")
    While Left(strDirectory,1)="\"
        strDirectory = Right(strDirectory,Len(strDirectory)-1)
    Wend
    While Right(strDirectory,1)="\"
        strDirectory = Left(strDirectory,Len(strDirectory)-1)
    Wend
    dirArray = Split(strDirectory,"\")
    curPath = "\\" & dirArray(0)
    For iDir=1 To UBound(dirArray) 'Skip the 0th one which is machine name
        curPath = curPath & "\" & dirArray(iDir)
        If objFSORemote.FolderExists(curPath) = False Then
             objFSORemote.CreateFolder curPath
        End If
    Next
End Sub
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 8

Expert Comment

by:fozylet
ID: 10756528
The script above will create an entire directory tree if it does not exist...
0
 
LVL 26

Accepted Solution

by:
EDDYKT earned 500 total points
ID: 10756590
Try this and tell us what is an error msg


Sub MakePathRemote(strDirectory, pbHeader)
   Dim intLen
    Dim intDirLen
    Dim objFSORemote
   
   Set objFSORemote = WScript.CreateObject("Scripting.FileSystemObject")
   
    If pbHeader Then
         WriteToOutFile "Creating Folder on remote server " & strDirectory, True, False
    End If
   
on error resume next
   intLen = 4
   If Right(strDirectory, 1) <> "\" Then strDirectory = strDirectory + "\"
   Do While objFSORemote.FolderExists(strDirectory) = False And intLen < Len(strDirectory)
       intDirLen = InStr(intLen, strDirectory, "\")
       If objFSORemote.FolderExists(Left(strDirectory, intDirLen)) = False Then
             objFSORemote.CreateFolder Left(strDirectory, intDirLen - 1)
msgbox Left(strDirectory, intDirLen - 1) & ":" err.number & "-" & err.description
       End If
       intLen = intDirLen + 1
   Loop
End Sub
0
 

Author Comment

by:oafcmetty
ID: 10756674
fozylet - Your script gives me a 'Path not found' error

EDDYKT - I get the following error: "\\<server>:52-Bad file name or number" then "\\<server>\<folder>:76-Path not found"
0
 
LVL 26

Expert Comment

by:EDDYKT
ID: 10756938
what is your strDirectory and pbHeader

By the way what is \\<server> and \\<server>\<folder>?
Is it the machine name and folder you want to create? <> is special charater and I don't think you can use it as folder name
0
 

Author Comment

by:oafcmetty
ID: 10757473
Don't worry guys - sorted.

I'm doing it via mapping one of server 2s drives on server 1, and then creating the subfolder that way.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone 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

When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…
Suggested Courses

660 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