国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - VBS - 用vbs實現(xiàn)按創(chuàng)建日期的順序列出一個文件夾中的所有文件

用vbs實現(xiàn)按創(chuàng)建日期的順序列出一個文件夾中的所有文件

2020-07-10 18:06腳本之家 VBS

如何按創(chuàng)建日期的順序列出一個文件夾中的所有文件?

問:
你好,腳本專家!如何按創(chuàng)建日期的順序列出一個文件夾中的所有文件?

-- CL

答:
你好,CL。您知道,如果我們雄心勃勃并且努力工作,我們會坐下來為您寫一個腳本,以使用 WMI 返回一個文件夾中的所有文件。該腳本將獲取有關所有這些文件的信息,并將該數(shù)據(jù)存儲在未連接的記錄集中。然后,在該記錄集中設置排序順序以按創(chuàng)建日期和時間對文件進行排列。(接著,我們進行大量的重復性工作,以將 WMI 的日期時間值轉換為易讀的日期時間格式。)最后,我們將記錄集中的所有值回顯到屏幕上。它需要花費大量時間并編寫許多代碼,但最終您會得到已排序的文件列表,而且每個人都會說“哇,那些腳本專家真是為讀者盡心盡力,不是嗎?”

而事實上,我們并非雄心勃勃和努力工作;我們只是腳本專家。作為腳本專家,我們一直在尋找最快速、最簡便的解決問題的方法。因此,我們沒有去寫一個冗長而復雜的腳本,而是弄來了一份 Log Parser 2.2,并匆忙完成了以下幾行代碼:

復制代碼 代碼如下:


Set objLogParser = CreateObject("MSUtil.LogQuery") 
Set objInputFormat = CreateObject("MSUtil.LogQuery.FileSystemInputFormat") 
objInputFormat.Recurse = 0 

Set objOutputFormat = CreateObject("MSUtil.LogQuery.NativeOutputFormat") 
objOutputFormat.rtp = -1 

strQuery = "SELECT Name, CreationTime FROM 'C:\Scripts\*.*' " & _ 
    "WHERE NOT Attributes LIKE '%D%' ORDER BY CreationTime" 
objLogParser.ExecuteBatch strQuery, objInputFormat, objOutputFormat 


猜猜看?此腳本不但能正常工作,還能返回文件列表(按創(chuàng)建日期和時間排序),而不管實際情況怎樣。太酷了。

當然,我們通常建議不使用非操作系統(tǒng)內置的解決方案;因為我們不想讓人們下載和安裝一些不是絕對必需的東西。然而,當要列舉文件時,很有必要下載和安裝 Log Parser;當您不得不獲得有關一組文件的信息時,您會發(fā)現(xiàn) Log Parser 方法優(yōu)于 WMI 或 FileSystemObject。Log Parser 的七八行代碼比得上 WMI 的六七十行代碼嗎?我們會把決定權留給您。

我們不會花時間介紹有關 Log Parser 的所有信息;有關詳細信息,您可以參閱“腳本故事”專欄您需要的所有內容就是日志(即 Log Parser)。現(xiàn)在,我們只需注意,腳本從創(chuàng)建 Log Parser 對象的實例開始,使用易記憶的名稱 MSUtil.LogQuery 以便于更好的記憶。然后,我們創(chuàng)建兩個其他對象,第一個指定我們正在使用的對象(在此情況下為文件系統(tǒng),雖然我們也可以使用事件日志、Active Directory、注冊表和其他項),第二個指明我們要使用的輸出類型(在此示例腳本中,我們要做的所有事情就是將數(shù)據(jù)寫入命令窗口)下列兩行代碼創(chuàng)建輸入對象,并告訴 Log Parser 不從任何子文件夾檢索文件:

Set objInputFormat = CreateObject("MSUtil.LogQuery.FileSystemInputFormat")
objInputFormat.Recurse = 0

如果我們確實要檢索任意或所有子文件夾的值,該怎么辦?在該情況下,我們必須要做的所有事情就是將 Recurse 屬性的值設置為 -1:

objInputFormat.Recurse = -1

同時,下列兩行代碼創(chuàng)建輸出對象,并告訴 Log Parser 顯示所有數(shù)據(jù)而不要暫停:

Set objOutputFormat = CreateObject("MSUtil.LogQuery.NativeOutputFormat")
objOutputFormat.rtp = -1

或者,我們可以告訴 Log Parser 顯示 10 行數(shù)據(jù),然后暫停,直到我們按鍵盤上的某個鍵,然后再顯示下 10 行數(shù)據(jù)。若要按每 10 行一批的規(guī)律顯示數(shù)據(jù),我們必須要做的所有事情就是將 rtp 屬性的值設置為 10:

objOutputFormat.rtp = 10

接下來配置 SQL 查詢以檢索文件信息。如果您對 SQL 有一些了解,此查詢應該相對容易分析一些;如您所見,我們正要查詢 C:\Scripts 中所有文件的 Name 和 CreationTime。此外,我們要使返回的數(shù)據(jù)按創(chuàng)建日期和時間順序排列,最先創(chuàng)建的文件排在最前面:

strQuery = "SELECT Name, CreationTime FROM 'C:\Scripts\*.*' " & _
    "WHERE NOT Attributes LIKE '%D%' ORDER BY CreationTime DESC"

此查詢中唯一不尋常的就是 WHERE 子句:WHERE NOT Attributes LIKE '%D%'。不用作過多的解釋,此子句篩選出文件夾,從而只返回文件。包含 Directory 屬性的文件系統(tǒng)對象就是文件夾;因為我們不想要文件夾,所以使用 WHERE NOT 語法清除擁有 Directory(縮寫為 %D%)屬性的所有對象。

最后,調用 ExecuteBatch 方法來運行查詢并將返回的數(shù)據(jù)寫入命令窗口。一兩秒鐘之后,我們將獲得如下所示的內容:


我們不需要輸入任何特殊的命令就可以獲得這一精密的表格輸出;Log Parser 為我們處理所有問題。它真是太棒了,不是嗎?

誠然,我們不必費很大力氣就可以獲得這些結果。而且它既快捷又簡便。您可以這么來看:任何人都不必知道我們不努力工作,不是嗎?

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线观看成人av | 国产97在线播放 | 日韩欧美一级片 | 欧美日韩成人精品 | 亚洲视频1区 | 亚洲日韩中文字幕在线播放 | 麻豆一区二区三区 | 免费成人在线看 | 希岛爱理在线 | 欧美日韩亚洲二区 | 亚洲一区二区在线播放 | 久久久高清| 欧美精品一区视频 | 欧洲精品久久久久69精品 | 成人在线视频网 | 99久久精品免费看国产四区 | 在线精品亚洲 | 午夜成人免费电影 | 欧美国产日韩一区二区三区 | 91免费观看视频 | 亚洲国产精品自拍视频 | 2级毛片| 色综合视频在线 | 日韩欧美国产一区二区三区 | 午夜视频一区 | 欧美日韩中文在线观看 | 亚洲精品乱码久久久久久久 | 日韩精品在线观看视频 | 亚洲视频在线免费观看 | 欧美人成在线视频 | 精品成人免费一区二区在线播放 | 日韩中文视频 | 亚洲精品一区二区三区四区高清 | 最近2018年手机中文字幕版 | 91午夜理伦私人影院 | 中文字幕一区二区三区四区 | 亚洲精品乱码久久久久久蜜桃麻豆 | 久久国产日韩 | www.久草.com | 国产精品久久久久久久久久久新郎 | 欧美日韩在线免费观看 |