批处理搜索文件

2024-11-02 14:31:33
推荐回答(2个)
回答1:

BAT:复制指定日期后创建的文件

@echo off
REM 指定源目录
set "SrcDir=E:\IRead\批处理大全"
rem 指定目的目录
set "DstDir=D:\result"
REM 指定日期
set "date=2017/01/16"
for /f "delims=" %%a in ('dir /a-d/s/b "%SrcDir%"') do (
for /f "delims= " %%b in ('dir /tc "%%a"^|findstr /r /b "[0-9]"') do if "%%b" gtr "%date%" copy /y "%%a" "%DstDir%"
)

下面再提供一个powershell 脚本,使用方法自行百度。

复制指定日期后创建的文件

$SrcDir="E:\IRead\批处理大全";   #源目录
$DstDir="D:\result";            #目的目录
$SpcDay="2017-09-16";           #2017-09-16前的文件
Get-ChildItem -Path $SrcDir -Recurse -File|Where-Object{$_.CreationTime -gt $SpcDay}|ForEach-Object{Copy-Item -Path $_.FullName -Destination $DstDir -Force}

复制指定N天前的文件

$SrcDir="E:\IRead\批处理大全";   #源目录
$DstDir="D:\result";            #目的目录
$DaysAgo=100;                   #100天前的文件
Get-ChildItem -Path $SrcDir -Recurse -File|Where-Object{((Get-Date)-($_.CreationTime)).days -gt $DaysAgo}|ForEach-Object{Copy-Item -Path $_.FullName -Destination $DstDir -Force}

回答2:

@echo off
set split=%date:~4,1%
for /f "tokens=1-3*" %%a in ('dir /a:-d /tc /s ^|findstr "^[0-9][0-9]"') do (
if %%~a gtr 2018%split%03%split%16 copy "%%~d" E:\yh\
)