我正在尝试运行将不同文件复制到同一目标文件夹的VBS脚本 基于工作日。 因此,如果今天是星期六(系统时间),文件1.text将被发送到目的地,但如果是星期日,则文件2.text将被发送到目的地。写下以后没有成功......
dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
If Weekday(1,True))
FSO.CopyFile "C:\Users\sdu\Desktop\Source\1.txt", "C:\Users\sdu\Desktop\Destination\"
if Weekday(2,True))
FSO.CopyFile "C:\Users\sdu\Desktop\Source\2.txt", "C:\Users\sdu\Desktop\Destination\"
if Weekday(3,True))
FSO.CopyFile "C:\Users\sdu\Desktop\Source\3.txt", "C:\Users\sdu\Desktop\Destination\"
Else
FSO.CopyFile "C:\Users\sdu\Desktop\Source\4.txt", "C:\Users\sdu\Desktop\Destination\"
答案 0 :(得分:1)
我不清楚你要复制什么。您是否每天都有单独的文件(例如1.txt
到7.txt
)?或者,您在前3天(1.txt
,2.txt
,3.txt
)和另一个(4.txt
)在本周的剩余时间内有单独的文件?
如果是后者,我会使用Select Case
声明:
src = "C:\Users\sdu\Desktop\Source"
dst = "C:\Users\sdu\Desktop\Destination"
Set FSO = CreateObject("Scripting.FileSystemObject")
n = Weekday(Date, vbSaturday)
Select Case n
Case 1, 2, 3 : FSO.CopyFile FSO.BuildPath(src, n & ".txt"), dst & "\"
Case Else : FSO.CopyFile FSO.BuildPath(src, "4.txt"), dst & "\"
End Select
或If
声明:
src = "C:\Users\sdu\Desktop\Source"
dst = "C:\Users\sdu\Desktop\Destination"
Set FSO = CreateObject("Scripting.FileSystemObject")
n = Weekday(Date, vbSaturday)
If n < 4 Then
FSO.CopyFile FSO.BuildPath(src, n & ".txt"), dst & "\"
Else
FSO.CopyFile FSO.BuildPath(src, "4.txt"), dst & "\"
End If
否则你可以这样做:
src = "C:\Users\sdu\Desktop\Source"
dst = "C:\Users\sdu\Desktop\Destination"
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile FSO.BuildPath(src, Weekday(Date, vbSaturday) & ".txt"), dst & "\"
答案 1 :(得分:0)
使用字典将工作日(数字)s映射到文件名:
Option Explicit
Dim dicWD2File : Set dicWD2File = CreateObject("Scripting.Dictionary")
dicWD2File(1) = "2.txt"
dicWD2File(2) = "3.txt"
dicWD2File(3) = "4.txt"
dicWD2File(4) = "4.txt"
dicWD2File(5) = "4.txt"
dicWD2File(6) = "4.txt"
dicWD2File(7) = "1.txt"
Dim dtToday : dtToday = Date()
Dim nWD : nWD = Weekday(dtToday, vbSunday) ' nail down: Sunday => 1
WScript.Echo dtToday, nWD, WeekdayName(nWD)
If dicWD2File.Exists(nWD) Then
WScript.Echo "=> copy:", Replace("C:\Users\sdu\Desktop\Source\@", "@", dicWD2File(nWD))
Else
WScript.Echo "no such weekday:", nWD
End If
输出:
cscript 26500866.vbs
22.10.2014 4 Wednesday
=> copy: C:\Users\sdu\Desktop\Source\4.txt
(这样你只需要学习一次IF语句的正确语法!)