[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理怎么全盘搜索最近一个月之内修改过的指定文本文档?

本帖最后由 pcl_test 于 2016-7-14 21:59 编辑

我想实现“在全盘搜索最近修改过的,特定名称的txt文档,并显示出来”

这个应该怎么写呢?

for的扩展参数里可以显示某文件修改的时间,只是不知道楼主所谓的最近有什么范围没有?

TOP

原帖由 TX_kakashi 于 2010-8-7 13:57 发表
for的扩展参数里可以显示某文件修改的时间,只是不知道楼主所谓的最近有什么范围没有?




“今天之前的一个月”for可以实现吗?
有没有具体的代码呢?

TOP

原帖由 binghee 于 2010-8-7 14:01 发表




“今天之前的一个月”for可以实现吗?
有没有具体的代码呢?


哇,那可就是大工程了,需要算法强人。
先给个简易代码(for命令显示文件修改时间)
  1. @echo off
  2. setlocal
  3. title 查看文件修改时间
  4. :bof
  5. set /p myFile=[把文件拖到此处,并按Enter]
  6. if not exist %myFile% goto bof
  7. call :showDate %myFile%
  8. pause>nul
  9. goto bof
  10. :showDate
  11. for /f "delims=" %%a in ("%~1") do echo 修改时间为:[%%~ta]
  12. exit/b
复制代码

TOP

原帖由 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文档进行比较,显示出最近修改过的一个

不知道怎么可以实现呢?

TOP

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,取出第一行就是了

TOP

原帖由 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 编辑 ]

TOP

本帖最后由 pcl_test 于 2016-7-14 22:44 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. rem 修改日期在至今30天以内,即一个月内
  3. set d=-30
  4. rem 指定查找文件
  5. set "f=1.txt"
  6. for /f %%a in ('mshta VBScript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write DateAdd(""d"",%d%,date):close"^)') do set ad=%%a
  7. set ad=%ad:-=%
  8. set ad=%ad:/=%
  9. 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 (
  10.     if exist %%i:\ (
  11.         for /f "delims=" %%a in ('dir /a-d/b/s %%i:\"%f%" 2^>nul') do (
  12.             for /f "tokens=1" %%b in ("%%~ta") do set bd=%%b
  13.             set bd=!bd:-=!
  14.             set bd=!bd:/=!
  15.             if !bd! gtr %ad% echo;%%a
  16.         )
  17.     )
  18. )
  19. pause
复制代码

TOP

返回列表