Thomas_Meyer
asked on
How to modify VB Script to check file existence?
Hi,
can you help me to adjust my VB script? I need to search the script that exists in the %TEMP% file test.log, and if so, read the contents (this is always one digit), and added that the current file name in parentheses.
Finally, the script must delete the text file test.log.
In the event that no file test.log in the temp directory is not, the script work as now.
Thanks in advance for your great help.
TM
can you help me to adjust my VB script? I need to search the script that exists in the %TEMP% file test.log, and if so, read the contents (this is always one digit), and added that the current file name in parentheses.
Finally, the script must delete the text file test.log.
In the event that no file test.log in the temp directory is not, the script work as now.
Thanks in advance for your great help.
TM
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
strDesktop = objShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Desktop"
strUserName = objShell.ExpandEnvironmentStrings("%USERNAME%")
strDestination = "\\S1\tests\2011 A\"
arrExtensions = Array(".pp", "doc", "xls")
If Right(strDesktop, 1) <> "\" Then strDesktop = strDesktop & "\"
If Right(strDestination, 1) <> "\" Then strDestination = strDestination & "\"
For Each objFile In objFSO.GetFolder(strDesktop).Files
boolCopy = False
For Each strExt In arrExtensions
If LCase(Left(Mid(objFile.Name, InStrRev(objFile.Name, ".")), Len(strExt))) = LCase(strExt) Then boolCopy = True
Next
If boolCopy = True Then
strNewName = strUserName & "_" & objFile.Name
If objFSO.FileExists(strDestination & strNewName) = True Then objFSO.DeleteFile strDestination & strNewName, True
objFSO.CopyFile objFile.Path, strDesktop & strNewName, True
objFSO.MoveFile objFile.Path, strDestination & strNewName
End If
Next
MsgBox "Your files have been copied to " & strDestination
ASKER
Okay, I'll try to explain it further:
In the System folder "%Temp%" I have a text file test.log.
At this moment, my script works by renaming an existing file on your desktop user name (system variable "%USERNAME%") and I need to make the newly renamed file added more digits of the test.log file (if file exists).
The result might look like this:
The script renames the file on your desktop: Thomas.Meyer(2). pptx
In the System folder "%Temp%" I have a text file test.log.
At this moment, my script works by renaming an existing file on your desktop user name (system variable "%USERNAME%") and I need to make the newly renamed file added more digits of the test.log file (if file exists).
The result might look like this:
The script renames the file on your desktop: Thomas.Meyer(2). pptx
Try the following...
regards
Prashanth
regards
Prashanth
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
strDesktop = objShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Desktop\test"
strUserName = objShell.ExpandEnvironmentStrings("%USERNAME%")
strtempfile=objShell.ExpandEnvironmentStrings("%temp%")&"\test.log"
strDestination = "\\S1\tests\2011 A\"
arrExtensions = Array(".pp", "doc", "xls")
tempnum=""
If objfso.FileExists(strtempfile) Then
Set tempfile=objfso.OpenTextFile(strtempfile,1)
tempnum=Trim(tempfile.ReadLine)
tempfile.close
strNewName = strUserName & "_" & Replace(objFile.Name,".","("&tempnum&").")
End If
If Right(strDesktop, 1) <> "\" Then strDesktop = strDesktop & "\"
If Right(strDestination, 1) <> "\" Then strDestination = strDestination & "\"
For Each objFile In objFSO.GetFolder(strDesktop).Files
boolCopy = False
For Each strExt In arrExtensions
If LCase(Left(Mid(objFile.Name, InStrRev(objFile.Name, ".")), Len(strExt))) = LCase(strExt) Then
boolCopy = True
End If
Next
If boolCopy = True Then
If Len(tempnum)>0 Then
Set tempfile=objfso.OpenTextFile(strtempfile,1)
tempnum=Trim(tempfile.ReadLine)
strNewName = strUserName & "_" & Replace(objFile.Name,".","("&tempnum&").")
Else
strNewName = strUserName & "_" & objFile.Name
End If
If objFSO.FileExists(strDestination & strNewName) = True Then
objFSO.DeleteFile strDestination & strNewName, True
objFSO.CopyFile objFile.Path, strDesktop & strNewName, True
objFSO.MoveFile objFile.Path, strDestination & strNewName
End If
End If
Next
MsgBox "Your files have been copied to " & strDestination
ASKER
Hi,
I wrote a script error in that line (see below) and error: Object required: 'objFile'
strNewName = strUserName & "_" & Replace(objFile.Name,"."," ("&TempNum &").")
Regards,
TM
I wrote a script error in that line (see below) and error: Object required: 'objFile'
strNewName = strUserName & "_" & Replace(objFile.Name,".","
Regards,
TM
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
It helped that it works as it should!
I give thanks and evaluation.
Regards
TM
I give thanks and evaluation.
Regards
TM
What is location of temp file?
What do you mean by add that the current file name in parentheses?
It would be good if you can give an example