도움이 필요하십니까? 특정 폴더의 파일을 확인하는 데 2 일이 넘는 타임 스탬프가있는 경우 어떻게 삭제하거나 삭제하거나 다른 위치로 복사합니까?Windows 배치 스크립트에서 파일의 타임 스탬프 생성을 확인하려면 어떻게합니까?
4
A
답변
0
삭제가 확실하지 않지만 RoboCopy (Windows 7의 일부 임)를 사용할 수 있습니다. 매개 변수 :/MAXAGE : n은 n보다 오래된 파일을 복사합니다. 일반적으로 사본을 백업 폴더에 저장하고 나중에 해당 디렉토리에서 "삭제"를 수행합니다.
희망이 도움이됩니다.
3
~t
수정자를 사용하는 SET
명령을 사용하는 단순한 FOR
루프는 디렉토리의 파일의 최종 수정 날짜를 반환합니다.
는
@echo off
setlocal enabledelayedexpansion
echo Files changed today %date%
FOR %%A IN (*.*) DO (
set tf=%%~tA
set fd=!tf:~0,10!
if !fd!==%date% (
echo %%F !tf!
)
)
상세한 정보를 HELP FOR
및 HELP SET
를 참조 예를 참조하십시오.
set dd=!tf:~0,2!
set mm=!tf:~3,2!
set yyyy=!tf:~6,4!
를 추출하지만, 잠깐, 아주 까다로운 문제가있는 BAT 파일의 날짜 구성 요소를 추출, %DATE%
을하기 때문에 필요
및 ~t
수정자는 완전히 (끝없이) 사용자 정의 할 수있는 간단한 형식을 사용하여 날짜 형식을 지정합니다. 한 사용자는 Fri040811을 반환하도록 시스템을 구성 할 수 있으며 다른 사용자는 2011 년 8 월 4 일을 선택할 수 있습니다. BAT 프로그래머에게는 완전히 악몽입니다.
한 가지 가능한 해결책은 일시적으로 형식을 변경하는 것입니다. 이 예제를 참조하십시오.
@echo off
echo System Date Time = %date% %time%
reg copy "HKCU\Control Panel\International" "HKCU\Control Panel\International-Temp" /f >nul
reg add "HKCU\Control Panel\International" /v sShortDate /d "yyyy-MM-dd" /f >nul
reg add "HKCU\Control Panel\International" /v sTimeFormat /d "HH:mm:ss" /f >nul
echo Normalized Date Time = %date% %time%
set dd=%date:~8,2%
set mm=%date:~5,2%
set yyyy=%date:~0,4%
reg copy "HKCU\Control Panel\International-Temp" "HKCU\Control Panel\International" /f >nul
그리고 마지막으로 당신이 날짜로 연산을 수행해야합니다, 당신도 명확하지 않다 일수로 DD의 MM의 YYYY에 날짜를 변환해야합니다. 이 변환을 수행하는 몇 가지 코드가 있습니다. 0으로 시작하는 숫자를 8 진수로
:days
:: Algorithm based on Fliegel-Van Flandern algorithm from the Astronomical Almanac,
:: provided by Doctor Fenton on the Math Forum (http://mathforum.org/library/drmath/view/51907.html),
:: and converted to batch code by Ron Bakowski.
SET /A Month1 = (1%MM% %% 100 - 14)/12
SET /A Year1 = %YYYY% + 4800
SET /A days = 1461 * (%Year1% + %Month1%)/4 + 367 * ((1%MM% %% 100) - 2 -12 * %Month1%)/12 - (3 * ((%Year1% + %Month1% + 100)/100))/4 + (1%DD% %% 100) - 32075
SET Month1=
SET Year1=
goto :eof
이상한 관용구 (1%MM% %% 100)
SET /A
해석을 문제를 해결하는 데 사용됩니다. 그것을 할 것입니다 cmd를에 다음 명령을
함께 모든 조각을 넣어 너무
, ...
@echo off
setlocal enabledelayedexpansion enableextensions
reg copy "HKCU\Control Panel\International" "HKCU\Control Panel\International-Temp" /f >nul
reg add "HKCU\Control Panel\International" /v sShortDate /d "yyyy-MM-dd" /f >nul
reg add "HKCU\Control Panel\International" /v sTimeFormat /d "HH:mm:ss" /f >nul
set dd=%date:~8,2%
set mm=%date:~5,2%
set yyyy=%date:~0,4%
call :days
set /a today=!days!
FOR %%A IN (*.*) DO (
set tf=%%~tA
set fd=!tf:~0,10!
set dd=!fd:~8,2!
set mm=!fd:~5,2!
set yyyy=!fd:~0,4!
call :days
set /a age= !today!-!days!
if !age! leq 2 (
echo %%A is !age! days old
)
)
reg copy "HKCU\Control Panel\International-Temp" "HKCU\Control Panel\International" /f >nul
goto :eof
:days
:: Algorithm based on Fliegel-Van Flandern algorithm from the Astronomical Almanac,
:: provided by Doctor Fenton on the Math Forum (http://mathforum.org/library/drmath/view/51907.html),
:: and converted to batch code by Ron Bakowski.
SET /A Month1 = (1%MM% %% 100 - 14)/12
SET /A Year1 = %YYYY% + 4800
SET /A days = 1461 * (%Year1% + %Month1%)/4 + 367 * ((1%MM% %% 100) - 2 -12 * %Month1%)/12 - (3 * ((%Year1% + %Month1% + 100)/100))/4 + (1%DD% %% 100) - 32075
SET Month1=
SET Year1=
goto :eof
0
here is the reference of how you can delete files older than 2 days
.
forfiles /p "c:\path" /s /m *.* /d -365 /c "cmd /c del @file"
관련 문제
- 1. Windows 배치 스크립트에서 파일 크기를 확인하려면 어떻게합니까?
- 2. 제어 파일의 타임 스탬프
- 3. 삽입시 SimpleDB 타임 스탬프
- 4. Windows 배치 스크립트에서 리디렉션 파일의 파일 인코딩을 변경하려면 어떻게해야합니까?
- 5. mysql 타임 스탬프 열
- 6. MySQL의 타임 스탬프 질문
- 7. MySQL의 SET 타임 스탬프
- 8. UNIX 타임 스탬프
- 9. PHP 타임 스탬프 문제
- 10. Nslog 타임 스탬프
- 11. ORMLite로 현재 타임 스탬프?
- 12. 데이터베이스에 타임 스탬프 삽입
- 13. h264 RTP 타임 스탬프
- 14. 타임 스탬프 배열
- 15. 는 타임 스탬프 Heroku가
- 16. iPhone 주소록 타임 스탬프?
- 17. C#의 타임 스탬프
- 18. PostgreSQL : 앞으로의 타임 스탬프
- 19. 타임 스탬프 카운터 제한
- 20. 타임 스탬프 조건의 성능
- 21. JSF 변환기 타임 스탬프
- 22. SSIS 타임 스탬프
- 23. 자바 타임 스탬프 valueOf
- 24. PHP의 타임 스탬프 비교
- 25. MySQL 타임 스탬프 필드
- 26. PHP에서 타임 스탬프 받기
- 27. 데이터베이스의 타임 스탬프
- 28. mongoid의 타임 스탬프 업데이트
- 29. PHP 타임 스탬프 비교
- 30. 타임 스탬프 변환 시간
이 질문은 serverfault – onof
에 속하며 작성 타임 스탬프 또는 수정 타임 스탬프를 의미합니까? –
@onof, IMO 이것은 박쥐 파일 프로그래밍에 관한 질문입니다. –