質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

解決済

2回答

3880閲覧

VBS 日付でファイルを検索する方法

---stax---

総合スコア148

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2017/12/17 11:37

編集2017/12/17 13:19

表題の件で質問させてください
20171201.CSV、20171217.CSVのように日付のついているファイルが複数あり,ファイル名が本日の日付のファイル(更新日時や作成日時ではなくファイル名が本日の日付のファイル)を検索し、そのファイルを操作したいと考えています

直接パスを指定すればファイルを操作することが出来たのですが本日の日付のファイルをどう指定すればいいのか悩んでいます
'本日の日付のファイル検索------内の処理をどう書けばよいかアドバイスお願いいたします

vbscript

1option explicit 2 3'変数宣言----------------------- 4 5Dim objADO 6Dim strReadFilePath 7Dim objFileSys 8Dim objReadStream 9Dim strLine 10Dim values 11Dim SQL 12Dim objSQL 13 14Dim objFolder 15Dim objFile 16 17 18'接続情報----------------------- 19 20Set objADO = CreateObject("ADODB.Connection") 21objADO.Open "DRIVER={PostgreSQL Unicode};" &_ 22 "SERVER=localhost;" &_ 23 "DATABASE=DataTest;" &_ 24 "UID=postgres;" &_ 25 "PWD=test;" 26 27 28'本日の日付のファイル検索----------------------- 29 30Set objFileSys = CreateObject("Scripting.FileSystemObject") 31 32Set objFolder = objFileSys.GetFolder("c:\test") 33 34For Each objFile In objFolder.Files 35 36 37 38 39Next 40 41'ファイル読み込み+INSERT----------------------- 42 43strReadFilePath = "C:\FTP_Test\Test01\20171217.CSV" 44 45Set objFileSys = CreateObject("Scripting.FileSystemObject") 46 47Set objReadStream = objFileSys.OpenTextFile(strReadFilePath,1) 48 49Do Until objReadStream.AtEndOfLine = True 50 51 strLine = objReadStream.ReadLine 52 values = Split(strLine,",") 53 SQL = "INSERT INTO datatest(time,index,test) VALUES ("&"'"& values[0] & "'" & "," & values[1] & "'" & "," & values[2] &")" 54 objSQL = objADO.Execute(SQL) 55 56End If 57Loop

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2017/12/17 12:16

/ はファイル名に使えないと思いますが?
---stax---

2017/12/17 13:19

ありがとうございます。記述ミスしておりました。
guest

回答2

0

ベストアンサー

ファイル名は日付だけで一つしかないなら「本日の日付のファイル検索」は不要ですね。
単にファイル名を作り出すだけで良いかと思います。

strReadFilePath = "C:\FTP_Test\Test01\" & Format(Date(), "yyyymmdd") & ".CSV"

投稿2017/12/18 00:55

sazi

総合スコア25193

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

---stax---

2017/12/18 03:06 編集

ありがとうございます ファイルは複数ある状態でやってみました 以下のコードを書いてみたのですが、エラーも出ず、インサートもされずでどこが悪いのか分からず悩んでいます。 途中でメッセージボックスでファイル名が取得できているかの確認はできたのですがインサートできない部分が特定できません 記述等おかしい部分はありますでしょうか・・・ Set objFileSys = CreateObject("Scripting.FileSystemObject") Timedate = Replace(Date,"/","") Set objFolder = objFileSys.GetFolder("C:\FTP_Test\Test01") For Each objFile In objFolder.Files If instr(objFile.Name,Timedate) <> 0 Then strReadFilePath = objFile.Path Set objFileSys = CreateObject("Scripting.FileSystemObject") RowsCk = 0 Set objReadStream = objFileSys.OpenTextFile(strReadFilePath, 1) Do Until objReadStream.AtEndOfLine = True strLine = objReadStream.ReadLine values = Split(strLine ,",") RowsCk = RowsCk + 1 If RowsCk > 3 Then Sql = "INSERT INTO datatest(time,index,test) VALUES (" & "'" & values(0) & "'" &"," & values(1) &","& values(2) &")" Set objRS = objADO.Execute(Sql) End If Loop End If Next
---stax---

2017/12/18 03:23

申し訳ありません 記述ミスしており動作しませんでした
guest

0

/はファイル名に使えませんが、それをさておくと、
filename = Date & ".CSV"
でしょうか。
ファイル名にするには、Replace/を削除したり-に置換したりする必要があるでしょう。

投稿2017/12/17 12:23

otn

総合スコア84542

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問