Language agnostic 如何编写脚本来查找最新更新的文件并复制到特定目录

Language agnostic 如何编写脚本来查找最新更新的文件并复制到特定目录,language-agnostic,windows-xp,file-copying,Language Agnostic,Windows Xp,File Copying,我有一个从网络浏览器下载文件的过程。它始终具有相同的名称(无法更改),因此每个文件都作为文件([latestnumber])下载 在这个目录中,我有: joe.pdf 乔(1).pdf 乔(2).pdf 等等 我现在想要一个脚本来获取“最新文件”(本例中是joe(2.pdf))并将其复制到另一个目录 类似于GetLatestFile(“joe”)并复制到“X:\mydirectory” 任何人都能想出一个简单的方法来做这件事。你喜欢用什么语言编写脚本 我不会选择文件名,我会选择您要使用的任何脚本

我有一个从网络浏览器下载文件的过程。它始终具有相同的名称(无法更改),因此每个文件都作为文件([latestnumber])下载

在这个目录中,我有:

joe.pdf
乔(1).pdf
乔(2).pdf
等等

我现在想要一个脚本来获取“最新文件”(本例中是joe(2.pdf))并将其复制到另一个目录

类似于GetLatestFile(“joe”)并复制到“X:\mydirectory”


任何人都能想出一个简单的方法来做这件事。

你喜欢用什么语言编写脚本


我不会选择文件名,我会选择您要使用的任何脚本语言,在目录中循环并查看每个文件的文件属性,以选择最新的文件,然后将其移动到目标目录。在具有System.IO命名空间中可用的类的.NET控制台应用程序中,这将非常简单。(即DirectoryInfo、FileInfo和File类)

您是否喜欢使用哪种语言编写脚本


我不会选择文件名,我会选择您要使用的任何脚本语言,在目录中循环并查看每个文件的文件属性,以选择最新的文件,然后将其移动到目标目录。在具有System.IO命名空间中可用的类的.NET控制台应用程序中,这将非常简单。(即DirectoryInfo、FileInfo和File类)

尝试以下操作:
XCOPY C:\BATCH\*.*C:\UPLOAD/M

将代码放入文本文件中,将其重命名为whateveryouwant.bat并执行

请确保根据您的喜好编辑源文件夹和目标文件夹


这就是你要找的吗?

试试这个:
XCOPY C:\BATCH\*.*C:\UPLOAD/M

将代码放入文本文件中,将其重命名为whateveryouwant.bat并执行

请确保根据您的喜好编辑源文件夹和目标文件夹


这就是您要找的吗?

因此,只要按日期对最新文件名进行排序就足够了,我建议如下:

@echo off & setLocal enabledelayedexpansion

for /f "tokens=* delims= " %%a in ('dir /b/a-d/o-d') do (
set N=%%~Fa
goto :done
)
:done
echo !N!
替换“复制…”的最后一个echo命令或对最新文件执行的任何操作


编辑>如果文件不在当前目录中,请相应地更改“dir”命令

,这样就可以按日期对最新文件名进行排序,我建议如下操作:

@echo off & setLocal enabledelayedexpansion

for /f "tokens=* delims= " %%a in ('dir /b/a-d/o-d') do (
set N=%%~Fa
goto :done
)
:done
echo !N!
替换“复制…”的最后一个echo命令或对最新文件执行的任何操作


编辑>如果文件不在当前目录中,则相应地更改“dir”命令

这将使用sed和正则表达式

它生成一个执行此任务的bat文件。 我已将bat文件放在c:\crp中,因此它不会成为最新的文件

作为演示,我创建了一个最新的文件latestfile.txt

您可以看到生成copyit.bat的行,您可以对其进行修改,使文件精确到您想要的位置

C:>md C:\crp

C:>复制/y con latestfile.txt

fgfdgd^Z

已复制1个文件

C:>dir/o-d/a-d/b | find/N/V“QWERTY”| find“[1]”sed-es/[1](.*)/cop y\d32\1\d32c:\newdir/>c:\crp\copyit.bat

C:>键入C:\crp\copyit.bat


copy latestfile.txt c:\newdir

这使用sed和正则表达式

它生成一个执行此任务的bat文件。 我已将bat文件放在c:\crp中,因此它不会成为最新的文件

作为演示,我创建了一个最新的文件latestfile.txt

您可以看到生成copyit.bat的行,您可以对其进行修改,使文件精确到您想要的位置

C:>md C:\crp

C:>复制/y con latestfile.txt

fgfdgd^Z

已复制1个文件

C:>dir/o-d/a-d/b | find/N/V“QWERTY”| find“[1]”sed-es/[1](.*)/cop y\d32\1\d32c:\newdir/>c:\crp\copyit.bat

C:>键入C:\crp\copyit.bat



复制latestfile.txt c:\newdir

我想看看我是否可以在.bat脚本中实现这一点,但我对任何语言都持开放态度。我确信在.bat脚本中实现这一点是可能的,不过c#将是我的首选。(可能是因为这是我最常使用的)我想看看我是否可以在.bat脚本中实现这一点,但我对任何语言都持开放态度。我确信在.bat脚本中实现这一点是可能的,不过C#将是我的第一选择。(可能是因为这是我最常使用的)我想他只想复制最新的文件,而不是全部。我只想复制最新的文件(不是全部)。这只会第一次复制所有文件。之后,它将始终只复制最新的。不好?在那个目录中还有一大堆其他的东西我不想复制,像这样,XCOPY C:\BATCH\joe*.pdf C:\UPLOAD/M?我想他只想复制最新的文件,不是所有的。我只想复制最新的文件(不是所有的)。这只会第一次复制所有的文件。之后,它将始终只复制最新的。不好?在那个目录中还有一大堆其他的东西我不想复制过,XCOPY C:\BATCH\joe*.pdf C:\UPLOAD/M像这样?如果你能按日期复制最新的,那就容易多了…@belisarius-那也很好。你的建议是什么如果你能在日期前复制最新的,那就容易多了…@belisarius-那也没关系。你有什么建议