vbscript to move files, rename them with unique names and with .rtf extension

I am trying to put together a script that will move files from one folder into another and give them a unique name once they are moved with a .rtf extension.  
        objFSO.MoveFile objFile.Path, strDestinationFolder & NewFileName
   
If I finish the script with the line above to move the files to the destination folder and rename it, how do I rename it with a unique filename each time and make the extension .rtf?

Any advice would be appreciated.

Thank you.
cbonesAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
sungenwangConnect With a Mentor Commented:
The code below should do it. The output would be:
<path>\test_YYYYMMDDHHMMSS_X.rtf where X is a sequential counter (1,2,3,4,etc)

sew

strSourceFolder = "c:\temp\"
strDestinationFolder = "c:\temp1\"
strFileNameToMatch = "test"
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strSourceFolder)
intCount = 1
For Each objFile In objFolder.Files
	strFileName = objFSO.GetFileName(objFile)
	If LCase(Left(strFileName, 4)) = strFileNameToMatch Then
		' use date/time stamp as new file name
		strNewFileName = strFileNameToMatch & "_" & Year(Now) & PadStr(Month(Now),2) & PadStr(Day(Now),2) & PadStr(Hour(Now),2) & PadStr(Minute(Now),2) & PadStr(Second(Now),2) & "_" & intCount & ".rtf"
		objFSO.MoveFile objFile.Path, strDestinationFolder & strNewFileName
		intCount = intCount + 1
	End If
Next
 
Function PadStr(str, intLength)
	intNumOfZeros = intLength-Len(str)
	If intNumOfZeros > 0 Then
		PadStr = String(intNumOfZeros, "0") & str
	Else
		PadStr = str
	End If
End Function

Open in new window

0
 
sungenwangCommented:
The script below will rename a file with a  datetime stamp. It should be unique up to the seconds.

sew

strSourceFile = "c:\temp\test.txt"
strDestinationFolder = "c:\temp1\"
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strSourceFile)
 
' use date/time stamp as new file name
strNewFileName = Year(Now) & PadStr(Month(Now),2) & PadStr(Day(Now),2) & PadStr(Hour(Now),2) & PadStr(Minute(Now),2) & PadStr(Second(Now),2) & ".rtf"
objFSO.MoveFile objFile.Path, strDestinationFolder & strNewFileName
 
Function PadStr(str, intLength)
	intNumOfZeros = intLength-Len(str)
	If intNumOfZeros > 0 Then
		PadStr = String(intNumOfZeros, "0") & str
	Else
		PadStr = str
	End If
End Function

Open in new window

0
 
RobSampsonConnect With a Mentor Commented:
Hi, above that line:
objFSO.MoveFile objFile.Path, strDestinationFolder & NewFileName

you can put this
NewFileName = Left(NewFileName, Len(NewFileName) - 4) & ".rtf"

which will strip the last four characters off from NewFileName, and replace it with .rtf

Regards,

Rob.
0
 
cbonesAuthor Commented:
I would need the script to scan through the folder for multiple files.  Is there a way to have it scan for all files that start with the same name.
Ex:   c:\test\test1
        c:\test\test2
        c:\test\test3
Have it scan for all files starting with test, then move the files renaming it with the date like in the above script.
Thank you.
0
All Courses

From novice to tech pro — start learning today.