当我运行此文件时:
xcopy .\*.odt .\source.zip
我被提示指定source.zip是什么:
xcopy .\*.odt .\source.zip
Does .\source.zip specify a file name
or directory name on the target
(F = file, D = directory)?
在我的情况下,它找到.odt
文件来复制文件并放在同一目录中,但新名称为 source.zip 。有没有办法避免提示,因为我总是希望目标是一个文件而不是目录。
答案 0 :(得分:0)
任何.odt
文件(实际上都是.zip
格式)是二进制文件,请参阅OpenDocument Document Representation
- 作为包中的多个子文档的集合,每个子文档存储完整文档的一部分。这是常见的 OpenDocument文档的表示。它使用文件扩展名 例如
.odt
,.ott
,.ods
,.odp
...等。包是一个 带有不同文件扩展名的标准ZIP
文件 定义子文档的结构。包中的每个子文档 具有不同的文档根并存储该特定方面XML
文件。所有类型的文档(例如文本和电子表格 文件)使用同一组文件和子文件定义。
因此,您需要将其视为二进制文件(阅读copy /?
):
copy /B .\*.odt .\source.zip
只有当只有一个扩展名为.odt
的文件时,上述命令才能顺利运行。否则,它会提示您Overwrite .\source.zip? (Yes/No/All):
。为了保持安全:
for %G in (.\*.odt) do copy /B "%G" ".\source_%~nG.zip"
for %%G in (.\*.odt) do copy /B "%%G" ".\source_%%~nG.zip"
的 %~nG
(或批量%%~nG
)说明:阅读Parameter Extensions。