2017-10-24 8 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

이 한 줄짜리 작업을 수행하지만 로캘 날짜/시간 형식으로 조정해야합니다. for/F "tokens = 1-5 *"%% a in ('dir/AD/T : C/S^| findstr "\ /" ') 에코 %% 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에 차례로 각각의 파일 이름을 지정, 디렉토리 이름없이하지만, 모든 하위 디렉토리로 노출 된 디렉토리 목록을 실행 출력 파일 u:\z.txt

를 생성합니다.

그런 다음, %%a에 metavariables %%w%%x 상황에 맞는 수행 번째 목록에 마지막 쓰기 시간에 대한 첫 번째와 생성 시간에 대한 두 번째 이름에 두 개의 표준 dir 목록을 실행합니다. %%a에있는 파일에 대한 보고서를 제외한 모든 라인을 제외 -

필터없는 (/v) 할 줄을 찾기 위해 findstr를 사용하여 각 출력은 상수 문자열 "하나의 공간"을 (/b) 시작합니다.

그런 다음 구분 기호로 공백을 사용하여 처음 2 개의 토큰을 제거하십시오. 전체 for 문을 둘러싼 괄호는 전체 출력이 기존 파일을 대체하는 새 파일 (로 리디렉션 할 수 있다는

주 - 기존 파일이 존재하지 않는 경우는 기존 파일에 추가 (또는 하나를 만들 >>에 변화 >))

cmdfor의 일부가 아닌 실행하려는 명령의 일부로 파이프를 이스케이프 처리하기 전에 캐럿을 이스케이프 처리합니다 (작은 따옴표로 묶음).