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

A script to copy files from folders with a specific file and folder names

首先,我应该提到有一台 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 的脚本。谢谢!

这应该可以让您了解如何操作:

@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"

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

Existing/duplicate-named 文件在目标中被覆盖而没有提示。文件名在复制时显示。