BlairBrenner
asked on
How To Use The Folder Name In This Script
I have a script that currently goes through all the subfolders in a path and executes a program using the file name obtained in the script for each iteration of a file in the subfolders. What I would like to do is to also be able to use the subfolder name in each iteration. Not the full path, just the name of the last folder in the path.
ZZZZZ indicates where I want to use the folder name.
Thanks in Advance.
Here is the script:
Dim fso, WshShell, startFolder, targetApp, args1, args2
Set fso = CreateObject("Scripting.Fi leSystemOb ject")
Set WshShell = CreateObject("WScript.Shel l")
startFolder = "L:\Junk\02_Split Input\Test1"
targetApp = Chr(34) & "C:\Program Files\EMC Captiva\QuickScan\quickscn .exe" & Chr(34)
args1= " /cmd /open filename="
args2= "/foldername="
args3= " /startip deskew:operatingmode=detec tangleandd eskew,dire ction=both ,fillcolor =white,mod e=text /exit"
SearchForFiles startFolder
Function SearchForFiles(folderName)
Dim folder, file, fileCollection, folderCollection, subFolder, oExec
Set folder = fso.GetFolder(folderName)
Set fileCollection = folder.Files
For Each file In fileCollection
Set oExec = WshShell.Exec(targetApp & args1 & Chr(34) & file.Path & Chr(34) & args2 & ZZZZZ & Chr(34) & args3)
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Next
Set folderCollection = folder.SubFolders
For Each subFolder In folderCollection
SearchForFiles subFolder.Path
Next
End Function
ZZZZZ indicates where I want to use the folder name.
Thanks in Advance.
Here is the script:
Dim fso, WshShell, startFolder, targetApp, args1, args2
Set fso = CreateObject("Scripting.Fi
Set WshShell = CreateObject("WScript.Shel
startFolder = "L:\Junk\02_Split Input\Test1"
targetApp = Chr(34) & "C:\Program Files\EMC Captiva\QuickScan\quickscn
args1= " /cmd /open filename="
args2= "/foldername="
args3= " /startip deskew:operatingmode=detec
SearchForFiles startFolder
Function SearchForFiles(folderName)
Dim folder, file, fileCollection, folderCollection, subFolder, oExec
Set folder = fso.GetFolder(folderName)
Set fileCollection = folder.Files
For Each file In fileCollection
Set oExec = WshShell.Exec(targetApp & args1 & Chr(34) & file.Path & Chr(34) & args2 & ZZZZZ & Chr(34) & args3)
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Next
Set folderCollection = folder.SubFolders
For Each subFolder In folderCollection
SearchForFiles subFolder.Path
Next
End Function
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
good morning!
try this approach or add this on your code..
chrPath is the the full path you get
x is the last folder on the full path...
x = Mid(chrPath, Len(Mid(chrPath, 1, InStrRev(chrPath, "\") + 1)))
i hope this will give u idea..
game-master
ASKER
I needed the final folder name, not the parent folder name. So I just added
strFolderName = folder.Name
Otherwise works great!
Thanks
strFolderName = folder.Name
Otherwise works great!
Thanks
Oh yeah, good point! I had ParentFolder stuck in my head after I thought you could just use objFile.ParentFolder, but then I thought you don't need that inside the loop, so I just used the objFolder, but didn't thnk that I didn't then need ParentFolder.Name...
At any rate, glad you got it working, and thanks for the grade.
Regards,
Rob.
At any rate, glad you got it working, and thanks for the grade.
Regards,
Rob.
Open in new window