标题: [其他] 批处理怎么全盘搜索最近一个月之内修改过的指定文本文档? [打印本页]
作者: binghee 时间: 2010-8-7 13:13 标题: 批处理怎么全盘搜索最近一个月之内修改过的指定文本文档?
本帖最后由 pcl_test 于 2016-7-14 21:59 编辑
我想实现“在全盘搜索最近修改过的,特定名称的txt文档,并显示出来”
这个应该怎么写呢?
作者: TX_kakashi 时间: 2010-8-7 13:57
for的扩展参数里可以显示某文件修改的时间,只是不知道楼主所谓的最近有什么范围没有?
作者: binghee 时间: 2010-8-7 14:01
原帖由 TX_kakashi 于 2010-8-7 13:57 发表
for的扩展参数里可以显示某文件修改的时间,只是不知道楼主所谓的最近有什么范围没有?
“今天之前的一个月”for可以实现吗?
有没有具体的代码呢?
作者: TX_kakashi 时间: 2010-8-7 14:30
原帖由 binghee 于 2010-8-7 14:01 发表
“今天之前的一个月”for可以实现吗?
有没有具体的代码呢?
哇,那可就是大工程了,需要算法强人。
先给个简易代码(for命令显示文件修改时间)
- @echo off
- setlocal
- title 查看文件修改时间
- :bof
- set /p myFile=[把文件拖到此处,并按Enter]
- if not exist %myFile% goto bof
- call :showDate %myFile%
- pause>nul
- goto bof
-
- :showDate
- for /f "delims=" %%a in ("%~1") do echo 修改时间为:[%%~ta]
- exit/b
复制代码
作者: binghee 时间: 2010-8-7 14:50
原帖由 TX_kakashi 于 2010-8-7 14:30 发表
哇,那可就是大工程了,需要算法强人。
先给个简易代码(for命令显示文件修改时间)
@echo off
setlocal
title 查看文件修改时间
:bof
set /p myFile=[把文件拖到此处,并按Enter]
if not exist %myFile% ...
其实我想实现的功能只有两个:
1.全盘搜索某个文本文档(比如1.txt)
2.将搜索出来的多个1.txt文档进行比较,显示出最近修改过的一个
不知道怎么可以实现呢?
作者: caruko 时间: 2010-8-7 15:49
for+dir /a /s /b 1.txt输出文件日期 时间 路径 到一个文件a.txt
2010-03-24 18:20:34 c:\windows\1.txt
2010-02-22 05:24:41 c:\test\1.txt
然后sort /r a.txt,取出第一行就是了
作者: binghee 时间: 2010-8-9 13:22
原帖由 caruko 于 2010-8-7 15:49 发表
for+dir /a /s /b 1.txt输出文件日期 时间 路径 到一个文件a.txt
2010-03-24 18:20:34 c:\windows\1.txt
2010-02-22 05:24:41 c:\test\1.txt
然后sort /r a.txt,取出第一行就是了
没看懂,能不能把具体的代码写一下呢?
请问应该怎么输出日期和时间呢?
[ 本帖最后由 binghee 于 2010-8-9 13:26 编辑 ]
作者: pcl_test 时间: 2016-7-14 22:32
本帖最后由 pcl_test 于 2016-7-14 22:44 编辑
- @echo off&setlocal enabledelayedexpansion
- rem 修改日期在至今30天以内,即一个月内
- set d=-30
- rem 指定查找文件
- set "f=1.txt"
- for /f %%a in ('mshta VBScript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write DateAdd(""d"",%d%,date):close"^)') do set ad=%%a
- set ad=%ad:-=%
- set ad=%ad:/=%
- for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- if exist %%i:\ (
- for /f "delims=" %%a in ('dir /a-d/b/s %%i:\"%f%" 2^>nul') do (
- for /f "tokens=1" %%b in ("%%~ta") do set bd=%%b
- set bd=!bd:-=!
- set bd=!bd:/=!
- if !bd! gtr %ad% echo;%%a
- )
- )
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |