【问题标题】:Batch file call command not finishing prior to next command批处理文件调用命令未在下一个命令之前完成
【发布时间】:2015-02-04 15:37:05
【问题描述】:

我正在运行一个批处理文件

cd desktop

net use z: \\NETWORKCOMPUTER1-PC\i
z:

cd movies
dir > c:movies.txt
cd ..\shows
dir > c:shows.txt
cd ..\anime
dir > c:anime.txt

net use z: /delete

最后它给出了这样的信息:

"There are open files and/or incomplete directory searches pending on the connection to z:.

Is it OK to continue disconnecting and force them closed? (Y/N) [N]:"

此时我选择“N”,所有文本文件都已正确创建。

如何让它在创建最后一个文本文件之前不删除网络连接?

已解决 - 在删除 z: 网络连接之前需要切换回 c:。

【问题讨论】:

  • 请问你为什么要在每个命令前加上call
  • 因为 CALL 应该在移动到批处理文件的下一行之前等待命令完成。如果我不以 call 开头,那么第一个目录列表甚至在它移动到下一个之前都没有完成。出于这个原因,我只是在批处理文件中的每一行前面加上我希望通过调用顺序执行的每一行。
  • 不,这不是 CALL 所做的。 START /WAIT 这样做,但你不需要它。您认为第一个目录列表在移动到下一个之前甚至没有完成的印象是错误的。向我们展示您的整个输出,最好使用仅包含几个文件的特殊测试目录结构。
  • 对不起。我一定对阅读其他一些帖子和文档感到困惑。我删除了目录列表完成的调用命令。他们没有更早,但可能是由于我已经纠正的其他一些语法错误。所以剩下的就是我问题中的原始问题。

标签: batch-file dir network-drive


【解决方案1】:

这是因为您将 z: 设置为靠近脚本顶部的当前驱动器。

因此,为避免该消息,在您尝试删除 z: 映射之前,请将当前驱动器设置为 c:(或您希望的任何其他驱动器)。

【讨论】:

  • 修复了它。最后我改回了 c:。感谢您的帮助!
  • 更好的是:最后是pushd \\computer\sharepopd。例如,不需要Z: 仍然是免费的。
猜你喜欢
  • 2022-01-18
  • 2015-05-09
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
  • 1970-01-01
  • 2012-10-27
相关资源
最近更新 更多