0

这里是新手,对 VBS 非常陌生,所以请放轻松。

我有一组文件通过发送FTP到服务器上的文件夹,这些文件的命名结构是:

waw_29_2013-09-09_act_v001.csv
waw_29_2013-09-09_amf_v001.csv
waw_29_2013-09-09_inc_v001.csv
waw_29_2013-09-09_nbs_v001.csv
waw_29_2013-09-09_trn_v001.csv
waw_29_2013-09-09_val_v001.csv
waw_29_2013-09-09_wth_v001.csv

我想要实现的是让脚本扫描包含这些文件的文件夹,并将名称更改为前一天,但保留命名约定的结构。

我已经在我的文件中尝试过这个c:\ drive(我很新,所以请原谅我缺乏理解)

**Dim file1, file2

file1 = "C:\fake_%date%.txt"

file2 = "C:\waw_" & year(date) & -month(date) & -Day(Date) & "_act_v001.csv"

Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FileExists(file1) = true then
    If fso.FileExists(file2) = true then
        fso.DeleteFile(file2)
    End if
    fso.MoveFile file1, file2
'else
'    msgbox "File does not exist"
End If 

Set FSO = Nothing**

位于一个名为(作为测试)的文件上c:\fake_2013-09-09.txt,它正在尝试扫描 c:\ 驱动器以查找该文件(无论日期如何),然后将此文件重命名为"waw_29_2013-09-09_act_v001.csv" .

我还需要单独运行相同的脚本,但也需要在周末将日期改回3天。

任何帮助将不胜感激。

小心

麦克风

再一次问好

我已经走得更远了:

我现在已将脚本修改为如下所示:

Dim file1, file2

file1 = "C:\winter\waw_29_2013-09-10_act_v001.csv"
file2 = "C:\winter\waw_29_" & -Year(Date) & Right("0" & Month(Date),2) & Right

("0" & -Day(Date),2) & "_act_v001.csv" 

Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FileExists(file1) = true then
    If fso.FileExists(file2) = true then
        fso.DeleteFile(file2)
    End if
    fso.MoveFile file1, file2
'else

' msgbox "文件不存在" End If

Set FSO = Nothing

现在我有 2 个关于脚本的问题,因为我认为它有 90%:

  • File1 中的行,我怎样才能让它搜索文件但只搜索 and _act 字段?
  • 在 File2 下,我可以让系统现在为文件生成一个日期(错误的日期,但我到了那里),但格式是 20130909,而不是我需要的 2013-09-09。如何在日期之间添加“-”,因为如果我留下“& Right(“0”)”以创建前导“0”,但如果我把它拿出来,它会将“-”放入但没有领先)!!!
  • 我的最后一个问题是我找到了 DateAdd 命令,该命令允许我搜索文件,然后将日期更改为上一个日期.....我的问题是我不知道将其放在代码中的哪个位置。

伙计们,如果您能提供帮助,我将不胜感激。

麦克风

哇非常感谢你,真的帮了很多忙,解决了我问题的第二部分。您知道如何在文件夹中搜索设置参数,以便我可以搜索名为“waw_29_2013-09-09_act_v001.csv”的文件夹,但从搜索中排除日期部分?

再次感谢你,我从剧本的那部分学到了很多东西

麦克风

4

1 回答 1

0

要构建表单的日期字符串,YYYY-MM-DD您需要连接日期部分和交错连字符:

d = Date
Year(d) & "-" & Right("0" & Month(d), 2) & "-" & Right("0" & Day(d), 2)

要构建 3 天前的日期字符串,您也可以这样做,但首先从当前日期减去 3 天:

d = Date - 3
Year(d) & "-" & Right("0" & Month(d), 2) & "-" & Right("0" & Day(d), 2)
于 2013-09-10T13:13:20.420 回答