如何组合forfiles,copy和@fname?

时间:2018-02-13 19:53:11

标签: windows batch-file cmd

此命令应该将静态源文件夹中的多个文件复制到一组已保存网页的每个文件夹中:

SELECT u.UserID, fi.UserID AS FriendID, fi.Name, fi.email, f.acceptdate
FROM UserInfo u
INNER JOIN Friends f
  ON u.UserID=f.UserID
  OR u.UserID=f.FriendID
INNER JOIN UserInfo fi
  ON (fi.UserID=f.UserID AND u.UserID=f.FriendID)
  OR (fi.UserID=f.FriendID AND u.UserID=f.UserID)
ORDER BY u.UserID, fi.UserID

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

如果尝试这样做:

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,但仍然失败。

在网上搜索带来了大量讨论,但没有显示endlocalforfiles,并使用cmd复制到目标目录。

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

1 个答案:

答案 0 :(得分:0)

如果我理解你正在尝试做什么:

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

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

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