0

vbs スクリプト (サード パーティ提供) に確認ダイアログを追加しましたが、[OK] を 3 回クリックする必要はなく、確認プロンプトを 1 回だけ表示したいと考えています... 私の (限られた) 知識では、それを行うことができません。誰か親切にこのコードを修正できますか?

Set fso = CreateObject("Scripting.FileSystemObject")

a = "C:\Path to file 1\File 1.txt"
b = "C:\Path to file 2\File 2.txt"

RenameItem a, a & ".bak"
RenameItem b, a
RenameItem a & ".bak", b

Sub RenameItem(oldname, newname)
  If fso.FileExists(oldname) Or fso.FolderExists(oldname) Then
If fso.FileExists(oldname) Then Set f = fso.GetFile(oldname)
If fso.FolderExists(oldname) Then Set f = fso.GetFolder(oldname)
f.Name = fso.GetFileName(newname)
  End If
Msgbox "Files were toggled successfully" & vbNewLine & vbNewLine & "(click the ""OK"" button to exit)"
End Sub
4

1 に答える 1

1

RenameItem()sub(routine) 、つまり再利用できるコードの単位です。サブルーチンを呼び出すたびに、サブルーチンを含むすべてが実行されますMsgBox

この行をサブの外に移動します。

Msgbox "Files were toggled successfully" & vbNewLine & vbNewLine & "(click the ""OK"" button to exit)"

完全なコード

Set fso = CreateObject("Scripting.FileSystemObject")

a = "C:\Path to file 1\File 1.txt"
b = "C:\Path to file 1\File 1.txt"

RenameItem a, a & ".bak"
RenameItem b, a
RenameItem a & ".bak", b

Msgbox "Files were toggled successfully" & vbNewLine & vbNewLine & "(click the ""OK"" button to exit)"

Sub RenameItem(oldname, newname)
    If fso.FileExists(oldname) Or fso.FolderExists(oldname) Then
        If fso.FileExists(oldname) Then Set f = fso.GetFile(oldname)
        If fso.FolderExists(oldname) Then Set f = fso.GetFolder(oldname)
        f.Name = fso.GetFileName(newname)
    End If
End Sub
于 2012-10-19T10:56:02.560 に答える