提取帶有日期條件的資訊:如果檔案名稱大於指定的日期和時間,則將檔案名稱放入清單中你好,
我正在嘗試獲取給定條件的目錄中的文件名列表,如果它是 1) zip 存檔,並且 2) 創建日期大於 yyyy/mm/dd。 下面是我的腳本。 我的問題
1)它運行沒有錯誤,但不傳回空列表。 我不確定問題是什麼(也許是日期)。
2)如何將創建日期()輸出格式設定為yyyy/mm/dd hh:mm:ss?
3)循環遍歷path2需要很長時間,因為我有超過100K的zip資料夾。 還有其他更快的方法嗎?
謝謝
path2 = "C:\Users\test\;
filelist = files in directory (path2);
lst2 = {};
For(i=1, i<= N items(filelist), i++,
If( Contains(filelist[i], ".zip") & Creation Date( path2||filelist[i]) > 2022-10-12T08:00:00, Insert Into( lst2, filelist[i] )
),
);
內容組織品質和工藝工程回覆:使用日期條件提取資訊:如果檔案名稱大於指定的日期和時間,則將檔案名稱放入清單中你可以試試這個......它應該加快速度
Names Default To Here( 1 );
path2 = "C:\Users\test\";
filelist = Files In Directory( path2 );
For( i = N Items( filelist ), i >= 1, i--,
If( Right( filelist[i], 4 ) != ".zip",
Remove From( filelist, i, 1 )
)
);
lst2 = {};
For( i = 1, i <= N Items( filelist ), i++,
If( Creation Date( path2 || filelist[i] ) > informat("2022-10-12T08:00:00", "yyyy-mm-ddThh:mm:ss"),
Insert Into( lst2, filelist[i] )
)
);回覆:使用日期條件提取資訊:如果檔案名稱大於指定的日期和時間,則將檔案名稱放入清單中嗨吉姆,謝謝。這解決了問題。 但是,當資料夾中有太多文件需要瀏覽時,會花費太多時間。 以下是我的新步驟,因此下次當我只想提取最新文件時,不需要像使用日期/時間作為過濾器(上面)那樣花費很長時間。 我不確定這是否是一種有效的方法。 有沒有更好的方法以更短的時間提取最新文件?
1)第一次取得定義資料夾中的整個檔案清單(目錄中的檔案(dir) )。 將其儲存到表格的一列“T1”中(僅運行一次)
2)一段時間後,最新文件會加入到同一資料夾。腳本將轉到相同資料夾並將整個檔案清單作為“newlist”(newlist =目錄中的檔案(dir)) 。
3)取得表1)中的列作為列表,然後循環以從newlist中刪除元素(我使用Remove From())。
4)在新清單上做任何需要做的事情。
5) 將 newlist 加到 1) 中的表中。
6)下次當我需要再次取得最新文件時,重複步驟2)-5)。
有什麼建議嗎?
回覆:使用日期條件提取資訊:如果檔案名稱大於指定的日期和時間,則將檔案名稱放入清單中在您提供的範例中,path2 = 行上缺少雙引號,而且 JMP 似乎沒有處理時間參考,因此透過將其變更為 Informat() 函數,可以確保JMP 日期/時間參考被正確解釋。
names default to here(1);
path2 = "C:\Users\test\";
filelist = Files In Directory( path2 );
lst2 = {};
For( i = 1, i <= N Items( filelist ), i++,
If( Contains( filelist[i], ".zip" ) & Creation Date( path2 || filelist[i] ) > informat("2022-10-12T08:00:00", "yyyy-mm-ddThh:mm:ss"),
Insert Into( lst2, filelist[i] )
)
);