Cmd 错误:";找不到指定的文件";复制文件名中带有百分号的文件时

Cmd 错误:";找不到指定的文件";复制文件名中带有百分号的文件时,cmd,copy,Cmd,Copy,这不是编程问题,这是我第一次问问题,所以如果这是一个错误的论坛,我很抱歉 我正在尝试使用一个简单的.cmd文件复制文件。某些文件正在接收错误: 系统找不到指定的文件 我已经确定,这个问题围绕着在文件名中使用百分号。我无法重命名有问题的文件,因为它们与数据库条目链接 下面是用于复制文件和日志文件中的结果项的语法示例 cmd文件的名称为Copy_Docs_v2.cmd。命令如下: Copy "\\server\DATA\APP\TJSH1\9w%01!.DOC" "\\server\APP\Docs

这不是编程问题,这是我第一次问问题,所以如果这是一个错误的论坛,我很抱歉

我正在尝试使用一个简单的
.cmd
文件复制文件。某些文件正在接收错误:

系统找不到指定的文件

我已经确定,这个问题围绕着在文件名中使用百分号。我无法重命名有问题的文件,因为它们与数据库条目链接

下面是用于复制文件和日志文件中的结果项的语法示例

cmd文件的名称为Copy_Docs_v2.cmd。命令如下:

Copy "\\server\DATA\APP\TJSH1\9w%01!.DOC" "\\server\APP\Docs\filename.DOC" 
日志文件中显示的内容是:

Copy "\\server\DATA\APP\TJSH1\9wCopy_Docs_v2.cmd1!.DOC" "\\server\APP\Docs\filename.DOC" 
系统找不到指定的文件

根据文件名中是否包含
%2
或多个百分号,日志文件条目略有不同,但它们都收到相同的错误消息


因此,问题是如何复制文件名中带有百分号的文件,还是有办法让Windows命令提示符忽略命令中的百分号?

您必须通过添加另一个%来转义“%”号,这将导致

复制“\server\DATA\APP\TJSH1\9w%%01!.DOC”“\server\APP\Docs\filename.DOC”


许多字符(如\=())在“带引号的字符串”中使用时不需要转义,通常这些字符可以在文件名/路径中找到。百分比字符是此规则的一个例外,即使在NTFS下%是一个有效的文件名字符。

也许这会对您有所帮助:使用批处理文件有一些答案,并且命令提示符
%
用于变量/参数。您应该将其加倍(
%%
)用作百分号…有关一般用法的问题应在超级用户上询问,并链接到本页底部。Jacob H:谢谢您的回复。我看到了这个答案,但是,答案并没有清楚地回答这个问题,在问题本身中,用户说:“我无法更改生成的文件以逃避这个问题,例如通过加倍百分号(%)、使用/或^(插入符号)逃避等。”。因为很多答案都说用插入符号来逃避,而其他人说你不能用插入符号来逃避,所以我一直在挠头。谢谢你的帮助。我对cmd文件进行了替换,找到%Replace with%%,日志文件的结果显示:复制了“\\server\DATA\APP\TSEH1\%4w02!.DOC”“\\server\APP\Docs\filename.DOC”1个文件。