SQLの窓 イラストAC フリー素材

2020年08月01日

バックアップスクリプトを作るスクリプト



出来上がったスクリプトの名前は、以下のような仕様です。 BK_ドライブ_パス.vbs パスの部分は、スペースを除いて \ を _ に変更しています。この名前でディレクトリがスクリプトのあるディレクトリに作成されてファイルが XCOPY でコピーされます。 スクリプトの名前を変更すると、コピー先(スクリプトがあるディレクトリ)のディレクトリ名も変更されます。 XCOPY は、新しいファイルのみをディレクトリ以下全てコピーします。
' ***********************************************************
' 処理開始
' ***********************************************************
Set Fso = Wscript.CreateObject( "Scripting.FileSystemObject" )
Set Shell = Wscript.CreateObject( "Shell.Application" )

' ***********************************************************
' 実行中ディレクトリの取得
' ***********************************************************
strPath = Wscript.ScriptFullName 
Set objFile = Fso.GetFile( strPath )
strBackupFolder = Fso.GetParentFolderName( objFile )

' ***********************************************************
' バックアップ対象ディレクトリの取得
' ***********************************************************
' マイ コンピュータを基準にディレクトリ選択
Set objFolder = Shell.BrowseForFolder( 0, "バックアップするフォルダを選択してください", &H4B, _
	"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" )
if objFolder is nothing then
	WScript.Quit
end if
if not objFolder.Self.IsFileSystem then
	WScript.Echo "ファイルシステムではありません"
	WScript.Quit
end if

strTargetFolder = objFolder.Self.Path
strName = Replace( strTargetFolder, ":", "" )
strName = Replace( strName, "\", "_" )
strName = Replace( strName, " ", "" )
strName = "BK_" & strName

' ***********************************************************
' スクリプト作成
' ***********************************************************
Set OutFile = Fso.OpenTextFile( strBackupFolder & "\" & strName & ".vbs", 2, True )

OutFile.WriteLine "strName = """ & strName & """"
OutFile.WriteLine "strTarget = """ & strTargetFolder & """"
OutFile.WriteLine "strBackupFolder = """ & strBackupFolder & """"
OutFile.Write "if MsgBox( strTarget & vbCrLf & ""のバックアップを開始します。よろしいですか? (保存先:"" & strBackupFolder & ""\"" & strName & "")"""
OutFile.WriteLine ", 1 ) = 2 then"
OutFile.WriteLine "	Wscript.Quit"
OutFile.WriteLine "end if"

OutFile.WriteLine "Set WshShell = Wscript.CreateObject( ""WScript.Shell"" )"
OutFile.Write "ExecCommand = ""cmd.exe /C """"xcopy.exe """""" & strTarget & """""" """""" & strBackupFolder & ""\"" & strName & ""\"""""
OutFile.WriteLine " /D /E /C /S /Y & PAUSE"""""""
OutFile.WriteLine "Call WshShell.Run( ExecCommand )"

OutFile.Close

WScript.Echo "バックアップスクリプト : " &  strName & ".vbs" & " を作成しました"

関連する記事

ディレクトリごと新しいファイルのみをコピーする
XCOPYで新しいファイルのみバックアップする為のスクリプトを作成するスクリプト
ディレクトリ選択


【VBScriptの最新記事】
posted by at 2020-08-01 20:34 | VBScript | このブログの読者になる | 更新情報をチェックする