你可以,如果你会使用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以进入下一个存储路径。
在popd
前面添加pause
并查看资源管理器时,可以看到驱动器已连接。
注意:只有当至少有一个驱动器号仍未被使用时才会起作用,因为它是临时映射所需的!
编辑:添加pushd "%~dp0"
摆脱评论中提到的警告。 %dp0
代表d rive和p ath th批处理文件参数始终是批处理文件本身。 ~
删除潜在的周边报价。
编辑2:我开始使用我的Windows 7虚拟机来自行测试。我写了一个.exe文件,它只是为了执行一个批处理文件,它只是在当前时间在桌面上创建一个文件。我没有服务器,所以我不能测试它到100%,但试图从虚拟机使用pushd \\localhost\c$
运行时,它工作正常......我试图建立从主机的连接,但无法让它以这种方式工作也不是另一个。您是否尝试过运行您在服务器上创建的批处理文件?例如:
%time%>"%USERPROFILE%\Desktop\myFile.txt"
只是为了测试连接?
随意问问是否不清楚!
阅读[this](http:// stackoverflow。com/questions/9013941/how-to-run-batch-file-from-network-share-without-unc-path-are-supported-me) – elzooilogico
阅读此:['pushd'](http:// ss64.com/nt/pushd.html)和['popd'](http://ss64.com/nt/popd.html) – aschipfl