繁体   English   中英

如何在Windows中使用通配符复制文件而不附加?

[英]How do I copy a file using a wildcard in Windows without appending?

我有一个excel文件,我每天从供应商FTP站点下载。 每天文件名都会更改为包含日期,供应商会在文件末尾添加“actual”或“estimate”。

例:
F_02262014_actual.xlsx
F_02262014_estimate.xlsx
等等

由于这些细微的变化,我使用通配符将文件复制到另一个目录中的一致名称。

例:
copy \\ Source \\ F_02262014 * \\ Target \\ CurrentFile.xlsx

我的问题是,每当我在复制命令中使用通配符时,Windows都会假设我将多个文件附加到一个文件中。 这会导致文件损坏(由于某种原因删除了所有内容)。

是否有命令或一系列命令将匹配文件模式的第一个文件复制到所需的文件名?

您无法以您要求的方式修改复制命令的行为。 不要做通配符拷贝,试试这个:

IF EXIST "\Source\F_02262014_actual.xlsx" (copy \Source\F_02262014_actual.xlsx \Target\CurrentFile.xlsx) ELSE (copy \Source\F_02262014_estimate.xlsx \Target\CurrentFile.xlsx)
for %%f in ("\Source\F_02262014*") do copy /y "%%~ff" "\Target\CurrentFile.xlsx"

写入包含在批处理文件中。 如果这将从命令行执行,则将所有%%替换为%

我无法重现您报告的问题。

您是说清空了源文件,还是目标是空的?

我将/b开关添加到COPY

copy /B \Source\F_02262014* \Target\CurrentFile.xlsx

......为我工作!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM