0

VBScriptを必要とするSQLServer統合パッケージを作成しています。基本的に、数日ごとに私のコンピューターのフォルダーにアップロードされるファイルがあります。このファイルの名前は常に異なりますが、常に同じ文字列が含まれています。

たとえば、昨日のファイルは「John J July 15.xlsx」であり、明日のファイルは「John JonesJul172012.xlsx」である可能性があります。それらはすべて「ジョン」を含み、常にそうします。「John」を含み、DateCreated属性が今日と等しいファイルのファイル名と等しくなるように変数を常に設定したいと思います。

私のコードに何か問題がありますか?動作させることができません。「Today.Date」も時刻を返していますか?日付を返すだけにしたい。Name属性は拡張子も返しますか?

    Public Sub Main()
    Dim f, fl, fs As Object
    Dim filedate As Date = Microsoft.VisualBasic.Today.Date
    Dim firstFileName As String

    fs = CreateObject("Scripting.FileSystemObject")
    fl = fs.GetFolder("E:\myFolder")

    For Each f In fl.Files
        If f.DateCreated = filedate And f.Name = "John*" Then
            firstFileName = f.Name
            Dts.Variables("ExcelSource").Value = "E:\myFolder\" & firstFileName
        End If
    Next
    End Sub
4

1 に答える 1

1

上記のIFステートメントのワイルドカード文字がここで意図したとおりに機能するとは思わない。ファイル名をリテラルの「*」文字と比較し、何も一致しません。私は次のようなことを提案するかもしれません:

*編集:DateCreatedプロパティは2番目に解決されるため、上記の比較も機能しません。これは、適切な日付をテストするために変更できる1つの方法(秒の解像度を省略)の非常に大まかな未テストの図です。*

...
If Year(fileDate)=Year(f.DateCreated) and _
   Month(fileDate)=Month(f.DateCreated) and _ 
   Day(fileDate)= Year(f.DateCreated) and  _
   Left(f.Name,4)="John" Then
...
于 2012-07-16T15:21:50.833 に答える