2017-10-24 4 views
0

は私が何ヶ月も前に行った作業のためにタイムシートを行うために必要なすべてのサブフォルダの一覧を取得するが、私はきちんと時間を追跡することはありません。 (私は当時のこの情報を追跡する必要があるとは知らなかった)すべてのフォルダ内のすべてのファイルのファイル変更された日付と

この期間中にファイルに最後に変更された日付または作成された日付のタイムスタンプを使用することができる最も価値のある情報を見つけました。私が働いたほとんどの日に作成され、最後に変更されたファイルが存在しなければなりません。これは、時間だけでなく、私が取り組んでいることを一緒にまとめるのに役立ちます。

私が望むのは、再帰的にディレクトリとすべてのサブディレクトリを通過し、ファイル名、作成日、最終更新日をテキストファイルに入れることができるバッチスクリプトです。私はおそらくExcelでかなり簡単に私は情報を持っていると並べ替えることができます。

これは、Windows XPコンピュータだが、私は、Windowsの正確なバージョンが重要とは思いません。

基本的にはHow to get the Last Modified date of all files in a folder using Batchですが、作成日も変更し、すべてのサブディレクトリを再帰的に使用するように変更する必要があります(非常に多数のディレクトリが含まれているため)。私は、バッチに関して非常に基本的なレベルの経験しか持っていません。

ご協力いただきありがとうございます。

+1

個人的に私が使用し、[カレンのディレクトリプリンタ](https://www.karenware.com/powertools/ptdirprn) – Squashman

+0

ありがとう!それは私のニーズに完璧です。 – azoundria

+0

この1行で作業を行いますが、ロケールの日付/時刻の形式に合わせて調整する必要があります。for/F "tokens = 1-5 *" %% a in( 'dir/AD/T:C/S^| findstr "\ /" ')echo %% a %% b %% c %% d - %%〜Tf - %% f' – Aacini

答えて

1
@ECHO OFF 
SETLOCAL 
(
for /f "delims=" %%a in ('dir /b /a-d /s *') do (
for /f "tokens=1,2delims= " %%w in ('dir /tw "%%a"^|findstr /v /b /c:" "') do (
    for /f "tokens=1,2delims= " %%c in ('dir /tc "%%a"^|findstr /v /b /c:" "') do echo %%c %%d,%%w %%x,%%a 
) 
) 
)>u:\z.txt 

GOTO :EOF 

%%aに順番に各ファイル名を割り当て、directorynamesなしではなく、すべてのサブディレクトリで裸のディレクトリ・リストを実行し、出力ファイルu:\z.txt

を生成します。

はその後、 %%aにメタ変数 %%w%%xコンテキスト内で実行される第2のリストと、最後の書き込み時間の最初と作成時間のための第二の名前上の2つの標準 dirリストを実行します。 %%a内のファイルに関するレポートを除くすべての行を除外 -

フィルターない(/v)を行うラインを見つけるために、findstrを使用して、各出力は、文字列定数「シングルスペース」で(/b)を開始します。

次に、スペースを区切り文字として使用して最初の2つのトークンを打ち切ります。

全体for文を囲む括弧は、既存のファイルを置き換える(全体の出力は新しいファイルにリダイレクトすることを可能にすることを注意 - 既存のファイルに追加する>>>を変更する(または既存のファイルが存在しません場合は、1つを作成します) )

cmdはパイプをエスケープして、forの一部ではなく、実行するコマンドの一部としてパイプをエスケープします(シングルクォーテーション)。

関連する問題