• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 478
  • Last Modified:

delete temp files in specific user directory

I want to make a script that delete all temperary files in a specific user share.

The script must delete all files in \fileserver\usershare\%username%\sg\temp

The script must run every saterday and have to be for all users. we all got Windows 2003 servers and the files are on a NAS.

So how can i make a script that does this for me.
  • 4
  • 3
2 Solutions

First create your input file by typing: dir /b >> users.txt in the \fileserevr\usershare path.

Then you can say something like:

FOr /F %i in (users.txt) Do (cd \\fileserver\usershare\%i
del *.tmp)

Something like this, you need to have and enter after the cd command. you can put this in a batch file. just test with it a bit.

Hope this helps.
josbosAuthor Commented:
yeah this could work but i don't want this to do with a tekst document (like users.txt). i want to use the AD to read all usernames and that the script automatic removes the folder (or files in the folder) in the usershare.

Ok to do that I created a vb script.

- create a textfile name it testscript.vbs c/p the content from below in it
- modify the Ad string with the details of your own AD
- Test some first!!

On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
objCommand.CommandText = _
    "SELECT HomeDirectory FROM 'LDAP://ou=users,ou=NL,dc=microsoft,dc=com' WHERE objectCategory='user'"  
Set objRecordSet = objCommand.Execute
Do Until objRecordSet.EOF
   strHomedir = objRecordSet.Fields("HomeDirectory").Value
   SET objFolder = objFSO.GetFolder(strHomedir & "\sg\temp")
   objFSO.DeleteFolder(objFolder.Path), TRUE 
   SET objFolder = nothing 

Open in new window

Easily manage email signatures in Office 365

Managing email signatures in Office 365 can be a challenging task if you don't have the right tool. CodeTwo Email Signatures for Office 365 will help you implement a unified email signature look, no matter what email client is used by users. Test it for free!

Hi again,

For testing you can use the script below, this will only echo the homedir path in a cmd prompt.


Do Until objRecordSet.EOF
   strHomedir = objRecordSet.Fields("HomeDirectory").Value
   wscript.echo strHomedir & "\sg\temp"

Open in new window

josbosAuthor Commented:
ok this will work (i tested it with the script below) but when i read this (correct me if i'm wrong) but this will delete the folder or only the files in it??
The vbs script delete also the temp you need to recreate it
add after the line 24
' re-create the folder BUT with new permissions!! check it
objFSO.CreateFolderFolder(strHomedir & "\sg\temp")

I have wrote a batch tha do the work without delete the temp

Bye Gastone Canali
@echo off
:: *** Gastone Canali ***
:: DELallin.cmd
:: delete all file and folders in
:: EX.: \\fileserver\usershare\ANY_FOLDERS\sg\temp
:: where ANY_FOLDERS are all the dirs 
:: in \\fileserver\usershare\
:: "%PreUsrDir%\ANY_USER_FOLDERS\%PostUsrDir%"
pushd %~d0%~p0
set logfile=%temp%\_dellog.log
set log=^>^>%logfile% 2^>^&1
:: *** Remove Log File
del /f /q %logfile%
:: \\fileserver\usershare\ANY_FOLDERS\sg\temp
:: modify the pameters PreUsrDir  PostUsrDir
set PreUsrDir=\\fileserver\usershare
set PostUsrDir=sg\temp
:: *** no log
::set log=
:: ***************************************
:: nothing done (SAFE TEST MODE)
set echo=echo
:: Comment the line above to Delete files
echo ****%date%**%time%****START %log%
if not exist  %PreUsrDir% goto :_ERR
for /f "delims=\"  %%U in ('dir /b /a:d %PreUsrDir%') do call :_DELallin "%PreUsrDir%\%%U\%PostUsrDir%"
echo ****%date%**%time%**** FINE   %log% 
goto :_END
if not exist %1 goto :_NODIR
rem *** I want to delete also hidden or ReadOnly files and dirs
%echo%  attrib -h -s -r %1\*.* /s /d  %log% 
rem *** delete all files 
%echo%  del  /q /f /s %1\*.*         %log%
rem *** delete all dirs 
for /f "delims=\"   %%d in ('dir /b /a:d %1') do if exist %1\"%%d"  %echo%  rmdir %1\"%%d" /S /Q
goto :_EOF
echo off
  echo ERROR
  echo ERROR %log%
goto _END

Open in new window

josbosAuthor Commented:
@mordakka & canali: thanks for both the answers. They work like hell and i give you both the points because you both got an answer that i could use or anyone could use. But i going to use the script from canali because the script doesn't delete the temp folder.
josbosAuthor Commented:
this was the script (s) i was looking for. thanks both!!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

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.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now