【问题标题】:how to combine forfiles, copy, and @fname?如何组合 forfiles、copy 和 @fname?
【发布时间】:2018-02-13 19:53:11
【问题描述】:

这个命令应该将多个文件从一个静态源文件夹复制到每个文件夹中,用于一组保存的网页:

forfiles /m *.htm /c "cmd /c copy /y _core/*.* @fname_files"

但是,每次调用都会失败,状态为“系统找不到指定的文件。”

如果尝试这样做:

forfiles /m *.htm /c "cmd /c copy /y 0x22_core/*.*0x22 @fname_files"

显示的状态显示每个源文件的名称和相同的错误消息。

我也尝试在通话周围添加setlocal/endlocal,但仍然失败。

在网络上搜索引起了很多讨论,但没有显示 forfilescmd,并使用 @fname 复制到目标目录。

对批处理脚本有更深入了解的人会“修复”这一行,使其按预期工作吗?

【问题讨论】:

  • core/*.* 应该是 core\*.*。在cmd /ccopy /y 之间添加echo 以查看您实际尝试执行的内容。
  • FORFILES 变量被输出引号包围。我认为这也会导致您希望使用该变量的方式出现问题。您尝试做的事情对我来说没有任何意义,所以也许如果您解释您尝试做的事情,我们可以提供更好的解决方案。我不确定你为什么首先使用FORFILES。没有必要。一个简单的FOR 命令将为您提供一个 htm 文件列表。

标签: windows batch-file cmd


【解决方案1】:

如果我理解正确你要做什么:

1)您可能会收到“系统找不到指定的文件”。因为目录 _core*.htm 文件不在同一目录中

2) 要将 *.htm 文件复制到每个 @fname_files 文件夹中,您必须先创建文件夹。这是添加了 mkdir 的命令行:

forfiles /m *.htm /c "cmd /c mkdir @fname_files & copy /y _core\*.* @fname_files"

【讨论】:

    猜你喜欢
    • 2013-08-16
    • 2017-04-20
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 2012-06-05
    • 2021-06-03
    • 2011-01-01
    • 1970-01-01
    相关资源
    最近更新 更多