バッチ スクリプトを使用して、フォルダー内の 2 つの日付 (例: 2012 年 9 月 23 日から 2012 年 9 月 30 日) の間のファイルを表示する必要があります。
フォルダーには約 50 万のファイルがあります。
これどうやってするの?
バッチ スクリプトを使用して、フォルダー内の 2 つの日付 (例: 2012 年 9 月 23 日から 2012 年 9 月 30 日) の間のファイルを表示する必要があります。
フォルダーには約 50 万のファイルがあります。
これどうやってするの?
ファイルのタイムスタンプを操作するのは、バッチでは苦痛です。最も簡単な解決策は、WMIC を使用することです。
これは、あなたが望むことをする簡単なスクリプトです。LastModified 日付の代わりに CreationDate を使用するように簡単に変更できます。出力に追加の列を追加および削除することもできます。入力wmic datafile get /?
して、使用可能な列のリストを取得します (名前からスペースを削除してください)。結果を日付でソートする場合は、出力を SORT にパイプできます。
日付は YYYYMMDD 形式で指定する必要があります。
@echo off
:listFilesBetweenDates Path StartDate EndDate
::
:: List files found in directory Path with last modified date between
:: StartDate and EndDate
::
:: path = Directory to list. Use . for current directory
::
:: startDate = YYYYMMDD format
::
:: endDate = YYYYMMDD format
::
setlocal
set "drive=%~d1"
set "folder=%~pnx1\"
set /a "start=%~2, end=%~3+1"
wmic datafile where "drive='%drive%' and path='%folder:\=\\%' and lastModified>='%start%' and lastModified<'%end%'" get lastModified, name
使用例 - 2012 年 9 月 7 日から 2012 年 9 月 17 日までの現在のディレクトリにあるファイルを一覧表示する
D:\test>listFilesBetweenDates . 20120907 20120917
LastModified Name
20120917155412.408435-240 d:\test\idlist.txt
20120910160033.573531-240 d:\test\input.txt
20120907180451.138275-240 d:\test\myurls.txt
20120911115129.949457-240 d:\test\replace.bat
20120917155853.541247-240 d:\test\temp1.txt
20120917162208.635197-240 d:\test\temp2.txt
20120917162217.595287-240 d:\test\temp3.txt
20120911141557.105798-240 d:\test\test,2.txt
20120910160622.664376-240 d:\test\test.vbs
20120907161948.016121-240 d:\test\test3.bat
20120910153717.558353-240 d:\test\test3.txt
使用例: 2012 年 9 月 26 日から 2012 年 9 月 27 日までの一時ディレクトリ内のファイルを、最終更新日で昇順に並べ替えて一覧表示します。
D:\test>listFilesBetweenDates "%temp%" 20100926 20120927 | sort
20120926085420.368034-240 d:\users\xxxxxx\temp\~df8a4e7af0245496b2.tmp
20120926085422.630049-240 d:\users\xxxxxx\temp\fxsapidebuglogfile.txt
20120926085433.781136-240 d:\users\xxxxxx\temp\sof8436.tmp
20120926085436.861167-240 d:\users\xxxxxx\temp\cvr941b.tmp.cvr
20120926103842.351663-240 d:\users\xxxxxx\temp\~dfe34cb61c66a1dcd7.tmp
20120926181118.453780-240 d:\users\xxxxxx\temp\~dfd0009f24c8c5eb31.tmp
20120927100903.382946-240 d:\users\xxxxxx\temp\~df559b9f2b2763ac3f.tmp
20120927100915.210126-240 d:\users\xxxxxx\temp\cvr3d51.tmp.cvr
20120927100918.680196-240 d:\users\xxxxxx\temp\sof47cf.tmp
20120927144827.689200-240 d:\users\xxxxxx\temp\tmpdbc8.tmp
20120927144828.169209-240 d:\users\xxxxxx\temp\tmpddad.tmp
20120927184908.066005-240 d:\users\xxxxxx\temp\~df401234aa9008c5e1.tmp
LastModified Name