0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ファイルコピーツール

Last updated at Posted at 2023-04-13

VBScript で以下の機能を実現しました

  • 手動で三つのフォルダを指定することができます。
  • 1つ目のファイルをベースとして二つ目のフォルダを検索し、二つ目フォルダに同階層同名のファイルがある場合、三つ目のフォルダにコピーします。
  • コピー先のフォルダが存在しない場合、新規作成します。

詳細

以下の VBScript コードを使用して、フォルダ間でファイルをコピーできます:

Option Explicit

Dim Folder1, Folder2, Folder3
Folder1 = InputBox("フォルダ1のパスを入力してください。", "フォルダ1のパス") ' ユーザーにフォルダ1のパスを入力させる
Folder2 = InputBox("フォルダ2のパスを入力してください。", "フォルダ2のパス") ' ユーザーにフォルダ2のパスを入力させる
Folder3 = InputBox("フォルダ3のパスを入力してください。", "フォルダ3のパス") ' ユーザーにフォルダ3のパスを入力させる

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

If Not objFSO.FolderExists(Folder1) Then
    MsgBox "フォルダ1が存在しません"
    WScript.Quit
End If

If Not objFSO.FolderExists(Folder2) Then
    MsgBox "フォルダ2が存在しません"
    WScript.Quit
End If

If Not objFSO.FolderExists(Folder3) Then
    objFSO.CreateFolder(Folder3)
End If

ProcessFolder objFSO.GetFolder(Folder1)

MsgBox "操作が完了しました"
Set objFSO = Nothing

Sub ProcessFolder(ByVal objFolder)
    Dim objFile, objSubFolder, targetFile, targetFolder

    For Each objFile In objFolder.Files
        targetFile = Replace(objFile.Path, Folder1, Folder2)
        targetFolder = Replace(objFile.ParentFolder.Path, Folder1, Folder3)

        If objFSO.FileExists(targetFile) Then
            If Not objFSO.FolderExists(targetFolder) Then
                objFSO.CreateFolder(targetFolder)
            End If
            objFSO.CopyFile targetFile, targetFolder & "\" & objFile.Name, True
        End If
    Next

    For Each objSubFolder In objFolder.SubFolders
        targetFolder = Replace(objSubFolder.Path, Folder1, Folder3)
        If Not objFSO.FolderExists(targetFolder) Then
            objFSO.CreateFolder(targetFolder)
        End If
        ProcessFolder objSubFolder
    Next
End Sub

```vb
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?