什么原因导致 xcopy 文件出现错误?

什么原因导致 xcopy 文件出现错误?

我是 xcopy 新手。我尝试将 excel 格式的文件移动到新目标并以 csv 文件格式移动。我必须这样做,以便 DMExpress ETL 作业可以移动文件然后读取它。这就是我公司想要完成的方式。

到目前为止,这就是我所拥有的:

xcopy "\blah\blah\blah\blah*.xlsx" "\blah\blah\blah\blah\Badge.csv" /Y <f.txt> create_copy_script.log

不确定为什么我必须有 <f.txt>,如果有人能解释一下,那就太好了。但这是次要问题。

当我在 .bat 文件中运行此文件,然后打开该文件(该文件确实移动并更改其名称)时,出现以下错误:


“Badge.csv”的文件格式和扩展名不匹配。该文件可能已损坏或不安全。除非您信任其来源,否则请不要打开它。您仍然要打开它吗?

现在,ETL 的下一部分必须打开此文件并将数据加载到数据库表中。

为了现在能够做到这一点,我必须打开这个文件,将其重新保存为 csv 文件,然后 ETL 的第二部分才能完美运行。但我想要自动化。我无法在周末打开这个文件,这太愚蠢了。

因此,我假设我的脚本出了问题。移动和重命名应该分开吗?有没有更好的方法?也许我不能只重命名文件和扩展名,如果我不能,有什么更好的方法可以做到这一点?

注意:我需要将原始文件保留在其原始文件夹中,然后复制并移动它,这就是我使用 xcopy 的原因。

答案1

Microsoft Excel.xlsx文件是非常与逗号分隔值文件的格式不同.csv。您的xcopy命令会更改文件的名称,但不会更改内容。

实现自动化的简单方法之一是使用 powershell,使用以下模块ImportExcel

# only need to install once on a system
Install-Module ImportExcel

# then automate this line to copy and convert your file to a .csv
Import-Excel 'c:\path\to\input.xlsx' | Export-Csv 'c:\path\to\output.csv' -NoTypeInformation

如果你喜欢,还有类似的 Python 模块。如果没有额外的工具,你无法在基本的 CMD shell 中完成这件事

相关内容