比较Windows批处理文件中文件名的一部分

时间:2013-11-25 10:35:13

标签: batch-file

我需要帮助比较目录中的文件名并通过FTP获取最新的文件名。 FTP服务器上的目录有n个文件,所有文件都以修改日期为后缀。例如,FTP服务器上有3个文件: Test_20131125.txt Test_20131124.txt Test_20131123.txt。

文件名将始终以Test_开头,但日期部分会有所不同。现在我必须得到最新的一个,在示例中是Test_20131125.txt。我想使用批处理文件来执行此操作但不确定如何进行操作。

谢谢,

1 个答案:

答案 0 :(得分:0)

我将如何做到这一点:

  1. 使用脚本化的ftp文件创建临时目录并将所有文件下载到该目录。 (google for specifics)
  2. 使用   for / f %% a in('%temp%\ folder dir / b / od')set latest = %% a
    获取最新文件。
  3. 将最新文件复制到所需位置并删除临时目录。
  4. 这样的事情:

    MD %temp%\ftpdown
    ftp -s:myftp.txt 
    for /f %%a in ('%temp%\ftpdown dir /b /od') set latest=%%a
    copy /Y %latest% wherever
    rd /q /s %temp%\ftpdown
    

    如果只有一些小文件,这很好,因为你在本地下载它们来进行比较。如果它是一个大目录或文件很大,最好从服务器下载dir / ls列表并从中提取文件名然后写一个ftp脚本文件来获取文件。这完全取决于。