0

谁能告诉我如何创建一个批处理文件来执行以下操作:

  1. 以以下日期格式创建文件夹 MMDDYYYY
  2. 在当前目录中搜索最大的文件并将其复制到步骤 1 中创建的文件夹中。
  3. 还要在当前目录中搜索与找到的最大文件匹配的第二个文件,并将其复制到步骤 1 中创建的目录中。
For example: 
file1test.txt (3kb) 
file2test.txt (10 kb)
file1test.log (2kb) 
file2test.log (2kb)

选择file2test.txt并将其复制到文件夹中,因为它是最大的文件,并且选择了file2test.log并将其复制到同一文件夹中,因为它与最大文件的模式匹配。

4

1 回答 1

2

正如 Andriy 已经指出的那样,您的帖子中有三个问题,第一和第二已经在 SO 中得到回答。

要解决您的最新问题,您需要遍历FOR文件列表并仅比较要匹配的文件名部分。

为了帮助您并帮助您入门,请参阅以下示例代码。我从您的示例中假设您只想使用名称部分,而不使用扩展名,并且我假设在此示例中您想要的扩展名是 .log 和 .txt。您必须完成文件夹部分,更改和扩展它以满足您的需求。而且,作为额外的奖励,为了让这个样本可以理解,我也必须解决你的第二个问题,抱歉:)

@echo off
setlocal enabledelayedexpansion enableextensions
set destfolder=Folder01012001
set largest=
set largestname=
set /a largestsize=0
for %%a in (*.txt) do (
  if %%~za gtr !largestsize! (
    set largest=%%a
    set largestname=%%~na
    set /a largestsize=%%~za
  )
)
set match=
for %%a in (*.log) do (
  if %%~na==!largestname! (
    set match=%%a
  )
)
echo copy "!largest!" %destfolder%
echo copy "!match!" %destfolder%
endlocal
于 2012-10-09T07:34:52.600 回答