【问题标题】:Call a Batch on a Share with References to Local Drives在引用本地驱动器的共享上调用批处理
【发布时间】:2014-07-22 20:51:28
【问题描述】:

环境:我有两台服务器,ServerA 和 ServerB。 ServerA 存储我的批处理脚本并管理我的任务计划程序以实现自动化。 ServerB 存储了几个 .cmd 和 .bat 文件,这些文件必须添加到 ServerA 上的任务计划程序中。

问题: ServerB 的 .cmd 文件具有本地驱动器引用,如下所示。当从 ServerA 的命令行调用时,它们会返回错误,因为命令行是在 ServerA 中而不是在 ServerB 中查找它们。我无法更改这些引用,因为它们有相当多的依赖项。

代码:

BatchA.bat:

pushd \\ServerB\d$
call Folder1\Folder2\Folder3\CommandB.cmd
popd

CommandB.cmd:

call D:\Folder1\Folder2\Folder3\batch1.bat
call D:\Folder1\Folder2\Folder3\batch2.bat
call D:\Folder1\Folder2\Folder3\batch3.bat
call D:\Folder1\Folder2\Folder3\batch4.bat

问题:如何更新 BatchA.bat 以从 ServerB 正确调用 CommandB.cmd?

【问题讨论】:

    标签: windows batch-file cmd


    【解决方案1】:

    您可以做的是将 ServerB 上的本地驱动器映射到同一驱动器号下的 ServerA,这样当从 ServerA 调用 CommandB.cmd 时,它将拥有所需的驱动器,并且您不需要进行太多更改。

    简而言之,您需要将 \ServerB\d$ 映射到 ServerA 上的驱动器号 D:\。

    【讨论】:

    • 我希望这是可能的。不幸的是,服务器 A 的 D 盘正在使用中。
    • CommandB.cmd 是否必须在 ServerA 上运行,或者如果您在具有本地资源的 ServerB 上运行 CommandB.cmd 并将结果传递回 ServerA 是否重要?
    • 在我看来,这可能是最好/最简单的方法。我希望我的所有批次都在同一台服务器上启动,以防止必须跟踪发生的情况。但是解决这个问题需要很多时间,最好还是硬着头皮。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    相关资源
    最近更新 更多