1

Windowsシステムでそれぞれ作成、変更、アクセスされたすべてのファイルのリストを生成する必要があります。

forfilesここでコマンドを見つけましたhttp://technet.microsoft.com/sv-se/library/cc753551(v=ws.10).aspxですが、これは作成およびアクセスされたタイムスタンプを使用していないようです。別のリスト)。

このコマンドの使用についても調べましたdirが、ヘルプセクションで、並べ替えへの参照のみが見つかり、フィルタリングへの参照は見つかりませんでした。

4

2 に答える 2

5

あなたの質問にはいくつかの不明確な詳細があるので、私はいくつかの仮定をしました。

以下のバッチファイルは、created.txt、modified.txt、accessed.txtの3つの個別のテキストファイルを作成し、現在のフォルダー内のファイルのリストを示します。各リストには、YYYYMMDDHHMMSS形式のそれぞれの日付と、それに続くファイル名が付いているため、簡単に処理できます。

@echo off
setlocal DisableDelayedExpansion
for %%f in (created modified accessed) do if exist %%f.txt del %%f.txt
set "folder=%CD:~2%"
for /F "skip=1 tokens=1-3*" %%a in (
    '"wmic datafile where (path='%folder:\=\\%\\') get InstallDate, LastModified, 

LastAccessed, Name"'
                                   ) do (
   for /F "delims=." %%A in ("%%a") do echo %%A %%d>> created.txt
   for /F "delims=." %%B in ("%%b") do echo %%B %%d>> modified.txt
   for /F "delims=." %%C in ("%%c") do echo %%C %%d>> accessed.txt
)

rem Process each list this way:
for /F "tokens=1*" %%a in (created.txt) do echo %%a - %%b
于 2012-04-26T03:14:39.540 に答える
0

主題には「日付の間」もありました:)それはどうですか?

forfilesでは、2つの日付条件(「+」と「-」)を設定できません。

また、wmicの不平等による日付条件にも問題があります。

例えば:

wmic datafile where (path='%folder:\=\\\\%\\\\' and lastmodified ^> "20120713" and lastmodified ^< "20120714") get Name

何も返しません(コマンドを実行するには、'<'および'>'の前にエスケープ('^')が必要でした)。

wmic datafile where (path='%folder:\=\\\\%\\\\' and lastmodified ^> "20120713") get Name

20120714000000(wmic表記で)後に変更されたファイルのみを返します。

于 2012-07-14T09:05:52.903 に答える