vbscript如何按修改日期对子文件夹中的文件进行排序(并使用文件的绝对路径打印)

2024-01-05

我需要创建一个vbs来按包含子文件夹的文件夹中的修改日期对可设置数量的文件(仅文件)进行排序,并使用绝对路径打印文件,如下所示:

The vbs:

Dim MAX
Dim Folder
MAX = 100
Folder = "C:\Test"
vbscript functions to group all files of all subfolders, and sort them by MOD date... ok
vbscript funciont to make a text file output (This i can't do it by myself)
end

文本文件输出(100个最新文件):

c:\newest 1st file.txt
c:\subfolder1\newest 2nd file.txt
c:\subfolder7\newest 3rd file.txt
c:\subfolder2\newest 4 file.txt
c:\subfolder8\newest 5 file.txt
c:\subfolder4\newest 6 file.txt
c:\subfolder2\newest 7 file.txt
c:\newest 8 file.txt
c:\subfolder3\newest 9 file.txt
etc...

真的不管解决方案是否可以用批处理完成,我同意,但我已经尝试过:

Dir /S /TC /O-D

唯一的问题是没有告诉我绝对路径......

EDIT:哦,当然我已经尝试过:

Dir / B / S / TC / O-D

但是 /B 参数意味着我之前所说的命令有很大的不同......

I mean:

Dir / S / TC / O-D

该命令将所有子目录中的所有文件分组(在一起)并按日期对它们进行排序。 (好的!)

Dir / B / S / TC / O-D

该命令逐个文件夹处理并对每个文件进行排序并显示它。 (坏的!)

因此,如果我需要对最新的 100 个文件进行排序,并且如果我使用带有“/B”参数的 Batch dir 命令,我会得到以下结果:

Output:

(Position 1) c:\subfolder1\Newest 1st file of this folder.txt
(Position 2) c:\subfolder1\Newest 2nd fil eof this folder.txt
(Position 3) c:\subfolder1\Old file of this folder.txt
(Position 3) c:\subfolder1\Older file of this folder.txt
(Position 4) c:\subfolder1\Oldest file of this folder.txt
(Position 5) c:\subfolder2\Newest 1st file of this folder.txt
(Position 6) c:\subfolder2\Newest 2nd file of this folder.txt
(Position 7) c:\subfolder2\Old file.txt
etc ...

所以请不要告诉我有关使用 dir 和 /B 参数的任何信息,我知道它很好:(。

再次感谢


我遵循上面 KH1 的建议:“您需要将所有文件路径和名称以及 DateModified 一起加载到数组中,对数组进行排序,然后迭代数组并输出文件路径和名称”,但是在批处理文件。下面的程序使用文件的 YYYYMMDDHHMM 修改时间戳作为数组的索引。这样,数组就被保留了自动排序通过批量设置命令。参数与上面的 dbenham 程序相同:FileCount 和可选的 RootFolder。

@echo off
setlocal EnableDelayedExpansion

rem Get order of FileTimeStamp elements independent of regional settings
for /F "skip=1 tokens=2-4 delims=(-)" %%a in ('date^<NUL') do (
   set timeStampOrder=%%a %%b %%c ho mi ap
)

rem For each file in the folder given by %2 (default current one)
for /R %2 %%F in (*.*) do (
   rem Extract FileTimeStamp data (yy mm dd ho mi ap)
   for /F "tokens=1-6" %%a in ("%timeStampOrder%") do (
      for /F "tokens=1-6 delims=/-.: " %%i in ("%%~tF") do (
         set %%a=%%i
         set %%b=%%j
         set %%c=%%k
         set %%d=%%l
         set %%e=%%m
         set %%f=%%n
      )
   )
   rem Adjust hour if needed
   if !ap! equ p set /A "ho=10!ho! %% 100 + 12
   rem Create the array element with proper index
   set "file[!yy!!mm!!dd!!ho!!mi!]=%%~fF"
)

rem At this point the array is automatically sorted

rem Show the first %1 array elements
set n=0
for /F "tokens=2 delims==" %%a in ('set file[') do (
   echo %%a
   set /A n+=1
   if !n! equ %1 goto finish
)

:finish
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vbscript如何按修改日期对子文件夹中的文件进行排序(并使用文件的绝对路径打印) 的相关文章

  • 使用 jQuery 插件及其依赖项的指南 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 jQuery 插件通常依赖于外部文件 jQuery 库 样式表 CSS 图像 其他插件等 使用 和编写 解决依赖关系放置问题的 jQuery 插
  • 使用特定的 JRE 运行 JAR 文件

    在 Windows 上有没有办法使用位于特定文件夹中的 JRE 运行 JAR 文件 类似于 Eclipse 在您提供给它的某个路径中查找其 JRE 的方式 一些 Windows 可执行代码 C 或 C 或批处理文件都可以完成这项工作 谢谢
  • 如何自定义 DataTable 列的排序

    我需要对数据表列的值进行排序 该列包含字符串 整数或混合文本 例如 数据表列包含如下值 23 18 12 store 23 store a1 1283 25 如果我使用对值进行排序Dataview sort 方法会按此顺序产生 12 128
  • 按字母顺序对组合框值进行排序

    我的 Excel 用户表单中有一个组合框 按字母顺序排序的最简单方法是什么 它的值是在 vba 中硬编码的 新的值只是添加到底部 因此它们不按任何顺序排列 当前正在使用用户表单 以便我们的用户可以将数据从我们的数据库导入到 Excel 中
  • 为什么 C# ProcessStartInfoRedirectStandardOutput 会导致 xcopy 进程失败

    这有点痛苦 因为我现在没有代码 但我会尽力解释 我有一个简单的 C 应用程序 它启动 Ruby 脚本 它还执行一些其他操作 因此它生成一个批处理文件并执行该文件 我正在使用 C 进程对象并设置以下内容 重定向标准输出 true 重定向标准错
  • 合并两个ActiveRecord数组并按created_at排序

    books Book find all articles Articles find all 通过阅读来自http guides rubyonrails org layouts and rendering html http guides
  • 为什么 asort 适用于多维数组?

    抱歉 如果这是一个非常基本的问题 我无意中发现asort http php net manual en function asort php似乎适用于多维数组 示例 PHP animals array 1 gt array name gt
  • MD 和 MKDIR 批处理命令有什么区别?

    这两个命令都会创建文件夹 我read http www computerhope com mdhlp htmMKDIR 甚至可以创建子文件夹 这只是区别吗 为什么有两个命令做同样的事情 我应该使用哪一个 除了 npocmaka 的answe
  • 如何使用 Window Script Host 查找活动(前台)窗口的窗口标题

    我想使用 Window Script Host WSH 查找当前处于活动状态 具有焦点 的窗口的标题 因为我希望 WSH 脚本仅在所需窗口处于活动状态时才发送键 注意 我无法使用替代方案 即在调用 sendkeys 之前激活所需的窗口 任何
  • 为什么Python的“sorted()”比“copy,then.sort()”慢

    这是我运行的代码 import timeit print timeit Timer a sorted x x 2 bla 4 boo 3 4 1 2 0 1 4 3 2 1 0 0 timeit number 1000 print time
  • Java 8 流过滤器 - 基于排序的更新

    我正在尝试对过滤器中的字段进行排序 输入文件 样本记录 DocumentList Document id 5975ff00a213745b5e1a8ed9 u id mailboxcontent id 5975ff00a213745b5e1
  • 快速 HTML 表格排序?

    是的 我知道有一个lot有很多 JS jQuery 程序可以做到这一点 我目前正在使用http www kryogenix org code browser sorttable sorttable js http www kryogenix
  • 如何使用服务器端vbscript获取图像宽度? ASP经典

    几天来我一直在尝试找到一种方法来获取驻留在我们服务器上的 png 文件的图像宽度 我正在尝试读取文件的前 24 个字节并解析出字节 17 20 的宽度 我在网上找到了几种例程 但都没有成功 奇怪的是 我似乎得到了从十六进制解码到十进制的字节
  • ASP.NET MVC 3 文件夹结构

    在了解了传统 ASP NET Webform 的背景后 我正在学习 MVC 框架 我正在开发一个典型的示例电子商务网站 该网站具有公共域 然后能够注册提供对安全会员区域的访问的服务 我有几个问题 在 ASP NET 中 私有成员页面通常与公
  • 为什么非交互式批处理脚本认为我按下了 Control-C?

    因此 当输出日志中突然出现以下内容时 我的批处理脚本运行得很好 21 27 13 99 c apps w7lab scripting gt some command Error 3221225786 CTerminate batch job
  • 如何编写 .bat 或 .cmd 文件来从 PATH 中删除元素?

    Related 如何列出批处理文件中路径的元素 https stackoverflow com questions 1424558 FOR 是如何运作的 https stackoverflow com questions 817280 ho
  • 如何运行 Windows 批处理文件但隐藏命令窗口?

    如何运行 Windows 批处理文件但隐藏命令窗口 我不希望 cmd exe 在执行文件时在屏幕上可见 这可能吗 如果你写一个非托管程序并使用创建进程 https learn microsoft com en us windows win3
  • 用于删除扩展名为 .bak 的文件的批处理文件

    我想批量删除磁盘上各个文件夹中的所有文件 bakc 谁能帮我 ex all c del bak s a 谢谢 它可以是单个命令 del s q f c bak
  • MATLAB - 从目录读取文件?

    我希望从目录中读取文件并对每个文件迭代执行操作 此操作不需要更改文件 我知道我应该为此使用 for 循环 到目前为止我已经尝试过 FILES ls path to folder for i 1 size FILES 1 STRU pdbre
  • 对对象集合进行排序[重复]

    这个问题在这里已经有答案了 如果我有一个简单的字符串列表 List

随机推荐