gpt4 book ai didi

batch-file - 将 pushd 和 popd 命令与 UNC 路径一起使用

转载 作者:行者123 更新时间:2023-12-04 00:28:23 36 4
gpt4 key购买 nike

我正在运行以下批处理文件来运行 SQL 中的存储包我得到一个 UNC Paths are not supported错误。如果我在服务器上运行它,它运行正确。如果我与其他用户共享它,它不会。我不想创建 map 驱动器。我一直在阅读 pushd命令,它可能是一个选项,但不确定它是如何工作的。有人可以指导我吗?

"\\Server\c$\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\DTExec.exe" /f "\\Sever\c$\Packages\Unapplied and Patient Balances.dtsx"

最佳答案

您可以使用 pushd作为 net use 的快速版本如果你愿意的话。
正如您已经观察到的,UNC 路径不受支持,因此您必须解决。命令pushd \\Server\Path\将在运行它的机器上创建一个网络驱动器,如 Z:\ ,自动切换到它(如 cd /d Z:\ )并将路径插入堆栈(稍后相关)。

然后,您可以使用它来访问服务器目录:

pushd "%~dp0"
pushd \\Server\c$
"Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\DTExec.exe" /f "Packages\Unapplied and Patient Balances.dtsx"
popd

应该做的伎俩。

命令 popd习惯于
1)删除网络驱动器和
2)从路径中弹出目录

因此,您实际上可以首先推送您需要的所有服务器路径(根据您的文件系统最多可达 20 个),然后在循环中为每个路径执行相同的操作并执行 popd 以转到下一个存储路径。

添加 pause 时在 popd 之前并查看资源管理器,您可以看到驱动器已连接。

注意:这仅在至少一个驱动器号仍未使用时才有效,因为它是临时映射所需的!

编辑:已添加 pushd "%~dp0"摆脱评论中提到的警告。 %dp0代表 d 河和 电话 0 第一个批处理文件参数,它始终是批处理文件本身。 ~删除潜在的周围引号。

编辑2:我自己启动了我的 Windows 7 VM 来测试它。我编写了一个 .exe 文件,其唯一目的是执行一个批处理文件,该文件只会在当前时间在桌面上创建一个文件。我没有服务器,所以我无法将其测试到 100%,但是当尝试使用 pushd \\localhost\c$ 从 VM 运行它时它工作得很好......我试图建立与主机的连接,但无法让它以这种方式或其他方式工作。您是否尝试过仅运行您在服务器上创建的批处理文件?就像是:
%time%>"%USERPROFILE%\Desktop\myFile.txt"

只是为了测试连接?

有什么不清楚的可以随时问!

关于batch-file - 将 pushd 和 popd 命令与 UNC 路径一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40996943/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com