You are on page 1of 10

Xóa file rác của hệ thống

Const TempWin =

C:\Windows\Temp\

Const Recent =

C:\Windows\Recent\*.*

DelTempDir

Sub DelTempDir ()

Dim fso

Set fso =

CreateObject(Scripting.FileSystemObject)

fso.DeleteFile TempWin & *.*, True

fso.DeleteFolder TempWin & *, True

fso.DeleteFile Recent, True

MsgBox DelTemp has finished., Finish function

End Sub

Kiểm tra NetFrameWork


//===============================================================
============
//
// Topic: CheckAndInstallNetFramework
//
// Description:
//
// My Name :
//
//===============================================================
============
function CheckAndInstallNetFramework()
begin
//CopyFile(SRCDIR^"Net
Framework\\CheckNetFamework.exe",SUPPORTDIR ^
"CheckNetFamework.exe");
if
CheckNetFameworkCreateFile(SUPPORTDIR,"CheckNetFamework.exe","Che
ckNetFamework.txt")=FALSE then
InstallNetFrameWork(SUPPORTDIR^"\\NetFx20SP1_x86.exe");
endif;
DeleteFile(SUPPORTDIR^"CheckNetFamework.exe");

end;

//===============================================================
============
//
// Topic: InstallNetFrameWork
//
// Description:
//
// My Name :
//
//===============================================================
============

function InstallNetFrameWork(filePath)
NUMBER nvDx, nvDy, nvResult, nvType, nvSize;
STRING svResult, svVersionNumber;

begin

if (AskYesNo("Microsoft .NET Framework 2.0 or later


version was not installed in your system.\n\n Would you like to
install it now?", YES ) = YES) then
if Is(FILE_EXISTS,filePath)==TRUE then
if (LaunchAppAndWait (filePath, "",
LAAW_OPTION_WAIT) < 0) then

MessageBox("NetFx20SP1_x86.exe
doesn't exist in Net Frmework foder in CD, please check
again.",WARNING);
//abort;
InformFinishNetFramWork();
else
//if (AskYesNo("Would you
like to restart computer now?", YES ) = YES) then
//SdFinishReboot ( szTitle, szMsg1, SYS_BOOTMACHINE, szMsg2, 0 );
// System
(SYS_BOOTMACHINE);
// abort;

// endif;
endif;
else

endif;

else
//abort;
MessageBox("Microsoft .NET Framework 2.0
installation is not completed",WARNING);
InformFinishNetFramWork();
endif;
if(CheckNetFameWorkRuning()==FALSE) then
MessageBox("Microsoft .NET Framework 2.0
installation is not completed",WARNING);
InformFinishNetFramWork();
//MessageBox("HAHHAHAH",WARNING);
endif;

end;

//===============================================================
============
//
// Topic: CheckNetFameworkCreateFile
//
// Description:
//
// My Name :
//
//===============================================================
============
function BOOL
CheckNetFameworkCreateFile(strFolderPath,fileEXE,createdFile)
BOOL blnResult;
NUMBER nvDx, nvDy, nvResult, nvType, nvSize;
STRING svVersionNumber;
STRING para;

begin
blnResult=FALSE;
para="\""+ strFolderPath^ createdFile+ "\"";
if LaunchAppAndWait (strFolderPath^fileEXE,para,
LAAW_OPTION_WAIT|LAAW_OPTION_HIDDEN)=0 then
if Is(FILE_EXISTS,strFolderPath^
createdFile)==TRUE then
blnResult=TRUE;
DeleteFile(strFolderPath^ createdFile);
else
blnResult=FALSE;
endif;
endif;
return blnResult;

end;
//===============================================================
============
//
// Topic: InformFinishNetFramWork
//
// Description:
//
// My Name :
//
//===============================================================
============
function BOOL CheckNetFameWorkRuning()

begin
if
CheckNetFameworkCreateFile(SUPPORTDIR,"CheckNetFamework.exe","Che
ckNetFamework.txt")=FALSE then
return FALSE;
else
return TRUE;
endif;
end;

//===============================================================
============
//
// Topic: InformFinishNetFramWork
//
// Description:
//
// My Name :
//
//===============================================================
============

function InformFinishNetFramWork()
NUMBER nResult, nLevel, nSize, nSetupType;
STRING szTitle, szMsg, szOpt1, szOpt2, szLicenseFile;
STRING szName, szCompany, szTargetPath, szDir, szFeatures;
BOOL bLicenseAccepted;
STRING szProductName;
STRING szMsg1, szMsg2;
BOOL bvOpt1, bvOpt2;
NUMBER nReturn;
NUMBER nType, nMediaFlags;
STRING szIgnore,svOldPath;
STRING szKey, szNumName, szNumValue, svNumValue;

begin

szTitle = @PRODUCT_NAME +" Installation is not


Completed.";
szMsg1 = "Microsoft .NET Framework 2.0 installation is not
completed" ;
szMsg2 = "Click Finish to complete %P Setup.";
SdFinish (szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1,
bvOpt2);
abort;
end;

Kiểm tra Windown Install 3.1


/
=================================================================
==========
//
// Topic: CheckWindowsInstaller3_1
//
// Description:
//
// My Name :
//
//===============================================================
============
function CheckWindowsInstaller3_1()
string
svVersionNumber,svFilePath,svFilePath2,svVersionNumber2;
number rs,nDefChoice;
STRING szTitle,szMsg,szMsg1,szMsg2 ;
begin

svFilePath=WINDISK+"\\WINDOWS\\system32\\msiexec.exe";
rs = VerGetFileVersion (svFilePath ,svVersionNumber);

if(svVersionNumber=="") then

else

if(rs ==FILE_NOT_FOUND ||
svVersionNumber< "3.1.0.0" ) then

if( LaunchAppAndWait(SUPPORTDIR^"\\WindowsInstaller-KB893803-v2-
x86.exe","",LAAW_OPTION_WAIT)<0)then

MessageBox("
WindowsInstaller3.1 installation is not completed",WARNING);
InformFinishWI3_1();

else
//if
(AskYesNo("Would you like to restart computer now?", YES ) = YES)
then

//SdFinishReboot ( szTitle, szMsg1, SYS_BOOTMACHINE, szMsg2, 0 );


// System
(SYS_BOOTWIN);

//endif;

endif;
endif;
if(CheckSencondWINDOWS()==FALSE)
then
MessageBox("
WindowsInstaller3.1 installation is not completed",WARNING);
InformFinishWI3_1();
else
endif;

endif;
end;
//===============================================================
============
//
// Topic: CheckSencondWINDOWS
//
// Description:
//
// My Name :
//
//===============================================================
============
function BOOL CheckSencondWINDOWS()

string
svVersionNumber,svFilePath,svFilePath2,svVersionNumber2;
number rs;

begin
svFilePath=WINDISK+"\\WINDOWS\\system32\\msiexec.exe";
rs = VerGetFileVersion (svFilePath ,svVersionNumber);
if(svVersionNumber<"3.1.0.0") then

return FALSE;

else
return TRUE;

endif;
end;

Tự động backup và xóa file backup cũ


trong SQL Server 2005 Express.
Kết hợp giữa VBScript và T-SQL với Task Manager trong Windows để tạo user và hệ
thống backup trong SQL Server 2005 Express Edition.

Chú ý : Tất cả những file này được save tại E:\SQL_Backup\scripts. Bạn có thể thay
đổi đường dẫn thư mục tùy ý.

Bước 1 : tạo T-SQL script:

Save script định dạng *.sql, đường dẫn : E:\SQL_Backup\scripts\backupDB.sql 


DECLARE @dateString CHAR(12), @dayStr CHAR(2), @monthStr CHAR(2), @hourStr CHAR(2),
@minStr CHAR(2)
--month variable
IF (SELECT LEN(CAST(MONTH(GETDATE()) AS CHAR(2))))=2
SET @monthSTR=CAST(MONTH(GETDATE()) AS CHAR(2))
ELSE
SET @monthSTR= '0' + CAST(MONTH(GETDATE()) AS CHAR(2))
--day variable
IF (SELECT LEN(CAST(DAY(GETDATE()) AS CHAR(2))))=2
SET @daySTR=CAST(DAY(GETDATE()) AS CHAR(2))
ELSE
SET @daySTR='0' + CAST(DAY(GETDATE()) AS CHAR(2))
--hour variable
IF (SELECT LEN(DATEPART(hh, GETDATE())))=2
SET @hourStr=CAST(DATEPART(hh, GETDATE()) AS CHAR(2))
ELSE
SET @hourStr= '0' + CAST(DATEPART(hh, GETDATE()) AS CHAR(2))
--minute variable
IF (SELECT LEN(DATEPART(mi, GETDATE())))=2
SET @minStr=CAST(DATEPART(mi, GETDATE()) AS CHAR(2))
ELSE
SET @minStr= '0' + CAST(DATEPART(mi, GETDATE()) AS CHAR(2))
--name variable based on time stamp
SET @dateString=CAST(YEAR(GETDATE()) AS CHAR(4)) + @monthStr + @dayStr + @hourStr +
@minStr
--=================================================================
DECLARE @IDENT INT, @sql VARCHAR(1000), @DBNAME VARCHAR(200)
SELECT @IDENT=MIN(database_id) FROM SYS.DATABASES WHERE [database_id] > 0 AND NAME NOT
IN ('TEMPDB')
WHILE @IDENT IS NOT NULL
BEGIN
SELECT @DBNAME = NAME FROM SYS.DATABASES WHERE database_id = @IDENT
/*Change disk location here as required*/
SELECT @SQL = 'BACKUP DATABASE '+@DBNAME+' TO DISK =
''E:\SQL_Backup\'+@DBNAME+'_db_' + @dateString +'.BAK'' WITH INIT'
EXEC (@SQL)
SELECT @IDENT=MIN(database_id) FROM SYS.DATABASES WHERE [database_id] > 0 AND
database_id>@IDENT AND NAME NOT IN ('TEMPDB')
END

Bước 2 : tạo file VBScript 

Tiếp theo,chúng ta cần tạo một file VBScript để xóa những database cũ .Script này
cũng được ghi tại file log .
 Bạn cần tạo một file trống E:\SQL_Backup\scripts\LOG.txt để save log của
file bị xóa.
 Đặt script theo đường dẫn E:\SQL_Backup\scripts\deleteBAK.vbs
 On Error Resume Next
 Dim fso, folder, files, sFolder, sFolderTarget
 Set fso = CreateObject("Scripting.FileSystemObject")

 'location of the database backup files
 sFolder = "E:\SQL_Backup\"

 Set folder = fso.GetFolder(sFolder)
 Set files = folder.Files

 'used for writing to textfile - generate report on database backups deleted
 Const ForAppending = 8

 'you need to create a folder named “scripts” for ease of file management &
 'a file inside it named “LOG.txt” for delete activity logging
 Set objFile = fso.OpenTextFile(sFolder & "\scripts\LOG.txt", ForAppending)

 objFile.Write "================================================================"
& VBCRLF & VBCRLF
 objFile.Write " DATABASE BACKUP FILE REPORT "
& VBCRLF
 objFile.Write " DATE: " & FormatDateTime(Now(),1) & ""
& VBCRLF
 objFile.Write " TIME: " & FormatDateTime(Now(),3) & ""
& VBCRLF & VBCRLF
 objFile.Write "================================================================"
& VBCRLF

 'iterate thru each of the files in the database backup folder
 For Each itemFiles In files
 'retrieve complete path of file for the DeleteFile method and to extract
 'file extension using the GetExtensionName method
 a=sFolder & itemFiles.Name

 'retrieve file extension
 b = fso.GetExtensionName(a)
 'check if the file extension is BAK
 If uCase(b)="BAK" Then

 'check if the database backups are older than 3 days
 If DateDiff("d",itemFiles.DateCreated,Now()) >= 3 Then

 'Delete any old BACKUP files to cleanup folder
 fso.DeleteFile a
 objFile.WriteLine "BACKUP FILE DELETED: " & a
 End If
 End If
 Next

 objFile.WriteLine
"================================================================" & VBCRLF &
VBCRLF

 objFile.Close

 Set objFile = Nothing
 Set fso = Nothing
 Set folder = Nothing
 Set files = Nothing

Bước 3 : tạo tệp bat kết hợp T-SQL Script và VBScript.

Chúng ta cần tạo tệp BAT để kết hợp cả 2 script vừa tạo trên.Nội dung của tệp bat thực hiện
dựa trên sqlcmd.exe.Save tệp BAT này tại : E:\SQL_Backup\scripts\databaseBackup.cmd 
REM Run TSQL Script to backup databases
sqlcmd -S<INSTANCENAME>-E -i"E:\SQL_Backup\scripts\backupDB.sql" REM Run
database backup cleanup script
E:\SQL_Backup\scripts\deleteBAK.vbs

Bước 4 : tạo tác vụ backup định kì với Windows Task Cheduler.

Mục đích để backup định kì,có thể là ngày,tuần,tháng tùy thích.


Mở the Control Panel -> Scheduled Tasks hoặc Start -> All Programs -
> Accessories -> System Tools -> Scheduled Tasks. 

Khi chứng thực Windows để chạy script T-SQL,sử dụng tài khoản Windows
là db_backupoperator (đây là tài khoản sử dụng cho mọi database)
 Mở "Scheduled Tasks"
 Click Add Scheduled Task
 Mở "E:\SQL_Backup\scripts" folder và click databaseBackup.cmd
 Chọn thời gian định kì cần backup.
 Nhập tài khoản db_backupoperator vào.
 Kết thúc quá trình tạo tác vụ backup định kì.

You might also like