如果文件夹基于字符串存在,则将文件复制到现有文件夹

时间:2015-01-13 08:50:48

标签: string batch-file if-statement copy

我有一系列文件夹,我每天都通过FTP单独下载。

文件夹名称的格式如下:

[DATE] [ID NO] [ID NAME]

示例:

W:\20150101 G0101 Building 1
W:\20150101 G0102 Building 2
W:\20150101 G0103 Building 3

[ID NO]和[ID NAME]始终相同。 [日期]每天都会更改。

我正在尝试编写批处理文件,以便每天将包含已知字符串的每个FTP文件夹的内容复制到等效的本地文件夹。复制每个FTP文件夹的内容后,将删除FTP文件夹。

例如:

  • 始终复制包含字符串" G0101"的文件夹在FTP驱动器" W:\"到" C:\ Building 1"
  • 始终复制包含字符串" G0102"的文件夹在FTP驱动器" W:\"到" C:\ Building 2"

我一直在使用IF EXIST但我无法正确理解语法。非常感谢任何帮助!

IF EXIST "C:\00\*G0101*" XCOPY "C:\00\*G0101*\*.*" "C:\00\Building 1"

此致

马丁: - )

1 个答案:

答案 0 :(得分:1)

您只能在路径的最后一个元素中包含通配符。因此,您需要枚举源文件夹,并为每个文件夹执行xcopy操作

for /d %%a in ("c:\00\*G0101*") do xcopy "%%~fa\*.*" "c:\00\Building 1"

for /d将搜索与通配符匹配的文件夹,并且对于每个文件夹,引用将存储在可替换参数%%a中,并且将执行do子句中的代码。 %%~fa只是对具有完整路径的文件夹的引用。

编写代码以在批处理文件中使用。要在命令行中使用,请将所有双百分号替换为单个百分号