我正在运行以下批处理文件以在TestDialog
中运行存储的包,但我收到SQL
错误。如果我在服务器上运行它,它运行正常。如果我与其他用户分享它不会。我不想创建一个地图驱动器。我一直在阅读UNC Paths are not supported
命令,它可能是一个选项,但不确定它是如何工作的。有人可以指导我吗?
pushd
答案 0 :(得分:3)
如果愿意,您可以使用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以转到下一个存储路径。 / p>
在pause
之前添加popd
并查看资源管理器时,您可以看到该驱动器已连接。
注意:只有在临时映射需要至少一个驱动器号尚未使用时才会有效!
修改:添加pushd "%~dp0"
以消除评论中提到的警告。 %dp0
代表 0 批处理文件参数的 d 和 p ,它始终是批处理文件本身。 ~
删除了潜在的引号。
Edit2:我启动了我的Windows 7 VM来自行测试。我写了一个.exe文件,只是为了执行一个批处理文件,它只是用当前时间在桌面上创建一个文件。我没有服务器,所以我无法测试它100%但是当尝试使用pushd \\localhost\c$
从VM运行它时工作正常...我试图从主机建立连接,但无法得到它以这种方式工作而不是另一种方式。您是否尝试过运行在服务器上创建的批处理文件?类似的东西:
%time%>"%USERPROFILE%\Desktop\myFile.txt"
只是为了测试连接?
随意询问是否有不清楚的事情!