用于从具有特定文件和文件夹名称的文件夹复制文件的脚本

时间:2017-06-05 21:03:49

标签: regex batch-file xcopy

首先,我应该提一下有一台Windows机器。

现在,我想复制until作为文件名的一部分的文件。

我有一个名为my data的文件夹。我有几个文件夹,它们的名称末尾有四个数字,例如my_folder_0000。我想找到这些文件夹,并将文件名为until的文件复制到另一个文件夹中。

为了澄清,请参阅以下示例以更好地理解结构:

my data/
   |-- /my_folder_0000/my_file_until_2010.csv
   |-- /his_folder_0001/his_file_until_2011.csv
   |-- /test
   |-- /documents

在上面的示例中,我想查看前两个文件夹,将文件复制到桌面上的文件夹中。

我想有一个适用于Windows的脚本。谢谢!

1 个答案:

答案 0 :(得分:1)

这应该让你知道如何做到这一点:

@echo off& setlocal
for /d %%d in ("%~1\*.*") do set dir=%%d& call :next_dir %2
exit /b

:next_dir
for /f "delims=0123456789" %%i in ("%dir:~-4%") do exit /b
copy /y "%dir%\*until*.*" %1 | find "until"

在命令行中,1st arg是源目录(在您的情况下可能是“\ my data”),第二个参数是复制文件的目标目录。

现有/重复命名的文件将在目标中被覆盖而不会提示。文件名在复制时显示。