2014年5月12日月曜日

ROBOCOPY 生成

MYFILE = "D:\admtools\test\CopySKEL.bat"

'Option Explicit
On Error Resume Next
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
 Set objFile = objFSO.OpenTextFile("DIRINFO.txt")
 If Err.Number = 0 Then
  Do While objFile.AtEndOfStream <> True

   CHWORD = objFile.ReadLine
   OFILE = CHWORD
   Call CreateBatch(MYFILE,CHWORD,OFILE)

  Loop
  objFile.Close
 Else
  WScript.Echo "ファイルオープンエラー: " & Err.Description
 End If
Else
 WScript.Echo "エラー: " & Err.Description
End If

Set objFile = Nothing
Set objFSO = Nothing



Sub CreateBatch(MYFILE, CHWORD, OFILE)

'テキストファイルのフルパス
Dim myA(9) : Dim myB(9)
myA(0) = "####" : myB(0) = CHWORD
myA(2) = "" : myB(2) = ""
myA(3) = "" : myB(3) = ""
myA(4) = "" : myB(4) = ""
myA(5) = "" : myB(5) = ""
myA(6) = "" : myB(6) = ""
myA(7) = "" : myB(7) = ""
myA(8) = "" : myB(8) = ""
myA(9) = "" : myB(9) = ""
'「A.変更前」と「B.変更後」を指定する
'消去なら「""」 
'置換なら「"置換するものを書く"」
'---------------------------------
With CreateObject("Scripting.FileSystemObject")
 With .GetFile(MYFILE).OpenAsTextStream
  myALLData = .ReadAll
  .Close
 End With
'---------------------------------
For j = 0 To UBound(myA)
If myA(j) <> "" Then _
 myALLData = Replace(myALLData, myA(j), myB(j))
Next
'---------------------------------
myFLD = .GetFile(MYFILE).ParentFolder & "\"

myExt = "." & .GetExtensionName(MYFILE)
myName = myFLD & .GetBaseName(MYFILE)

myName = OFILE

Do
 i = i + 1
 MYFILE2 = myName & "(" & i & ")" & myExt
 If Not .FileExists(MYFILE2) Then Exit Do

Loop
'---------------------------------
 With .OpenTextFile(MYFILE2, 2, True)
  .Write myALLData
  .Close
 End With
End With

End Sub

Msgbox " END "