如何用命令或批处理语句对文件按创建时间进行筛选?
2个回答
展开全部
取出来?说得不具体,大概是想看批处理怎么写, 命令行筛选不了,我设想一个模式你参考
文件时间是按创建时间,(如按最后修改时间把dir/tc的/tc去掉)预定的时间必须严格按代码中的格式写,可以根据精度省去不必要的部分,比如只写年,但写出来的部分必须是按格式,比如空格数,添0等
运行可用两种方式进行,1把要处理的文件夹拖到批处理图标上.2直接双击运行(处理的批处理文件所在文件夹),运行后会在批处理文件位置建一个new文件夹把符合条件的文件复制进去
@echo off&title 复制...
set ft=2011-05-06 09:30
set dd=new
set dd=%~dp0%dd%
if "%~1"=="" (set "ds=%~dp0")else set ds=%~1
if not exist "%dd%\" md "%dd%"
cd/d "%ds%"
for /f "tokens=1-3*" %%a in ('dir/tc/a-d/od^|more +5^|find/v "字节"')do (
if not "%%d"=="%~nx0" if "%%a %%b" geq "%ft%" (
copy "%%d" "%dd%\">nul&echo %%d&set/a n+=1))
if defined n (echo 共复制 %n% 个文件)else echo 未找到满足条件的文件
ping -n 2 127.1>nul
start "" "%dd%"
文件时间是按创建时间,(如按最后修改时间把dir/tc的/tc去掉)预定的时间必须严格按代码中的格式写,可以根据精度省去不必要的部分,比如只写年,但写出来的部分必须是按格式,比如空格数,添0等
运行可用两种方式进行,1把要处理的文件夹拖到批处理图标上.2直接双击运行(处理的批处理文件所在文件夹),运行后会在批处理文件位置建一个new文件夹把符合条件的文件复制进去
@echo off&title 复制...
set ft=2011-05-06 09:30
set dd=new
set dd=%~dp0%dd%
if "%~1"=="" (set "ds=%~dp0")else set ds=%~1
if not exist "%dd%\" md "%dd%"
cd/d "%ds%"
for /f "tokens=1-3*" %%a in ('dir/tc/a-d/od^|more +5^|find/v "字节"')do (
if not "%%d"=="%~nx0" if "%%a %%b" geq "%ft%" (
copy "%%d" "%dd%\">nul&echo %%d&set/a n+=1))
if defined n (echo 共复制 %n% 个文件)else echo 未找到满足条件的文件
ping -n 2 127.1>nul
start "" "%dd%"
展开全部
只是个参考:
@echo off
set/p x=输入时间(mm-dd-yy):
(xcopy /y/c/d:%x% "c:\a" "e:\b\" >nul 2>nul)||echo 源目录不存在或输入的时间不合法!
for %%i in (e:\b\*) do (echo %%~ti|findstr /v "%x:~-4%-%x:~,-5%"&&del /f "%%~i")
explorer e:\b\
pause
::上面针对于修改时间
::已更改
另外一条思路就是通过(dir /tc /a-d c:\a\*)|sort|more +7配合if,for来实现。。具体的命令就不写了。。授之以鱼不如授之已渔。。自己动手收获更多。。
@echo off
set/p x=输入时间(mm-dd-yy):
(xcopy /y/c/d:%x% "c:\a" "e:\b\" >nul 2>nul)||echo 源目录不存在或输入的时间不合法!
for %%i in (e:\b\*) do (echo %%~ti|findstr /v "%x:~-4%-%x:~,-5%"&&del /f "%%~i")
explorer e:\b\
pause
::上面针对于修改时间
::已更改
另外一条思路就是通过(dir /tc /a-d c:\a\*)|sort|more +7配合if,for来实现。。具体的命令就不写了。。授之以鱼不如授之已渔。。自己动手收获更多。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询