如何在没有pushd的情况下在UNC路径上获取文件的大小?

时间:2015-03-30 16:07:30

标签: batch-file cmd network-programming filesize unc

我正在帮助修复最近已更改为使用UNC路径的应用程序。在他可以使用bat文件运行之前

@echo off
echo %~z1

获取文件大小。

现在bat文件不起作用,因为CMD不支持UNC路径作为当前目录。我想过使用pushd命令临时创建一个指向网络资源的驱动器号,但我认为必须有一种更直接,更清洁的方式来实现这一点我可能只是没有足够的经验与CMD知道它。

任何建议或帮助都会非常感激!

感谢。

更新

为了澄清何时调用bat文件(通过使用exec()函数的PHP文件),我得不到任何响应。我尝试了几种调试方式(已经有几天了,所以我不记得究竟是什么)但我能得到的最多的是“Echo已关闭”或“系统无法找到指定的文件”。错误。我可以将文件地址复制/粘贴到我的Windows资源管理器中,但我可以找到该文件。

更新II

已经注意到,尽管UNC不受支持,但代码应该没有问题。如果这是真的那么还有什么问题呢?就像我之前说过的,我可以复制并粘贴给bat文件的文件路径,并且它们在windows explorer中打开很好。

更新III

我尝试计算bat文件执行的时间,它似乎随机地花费几乎没有时间或一点一点。所以我猜这可能是我的问题所在。但是,当我通过ajax调用运行它时,它的响应时间大约是550-650。我不知道是什么会导致bat文件的执行时间变化太大。任何想法都会受到欢迎!

提前感谢任何输入!

1 个答案:

答案 0 :(得分:1)

cmd与UNC活动目录不兼容,但文件中的代码不会有任何问题。您可以调用

\\server\share\folder\file.bat \\server\share\folder\file.txt
d:\folder\file.bat "\\server\share\folder with spaces\file.txt"
"\\server\share\folder with spaces\file.bat" d:\file.txt
....

并且在每种情况下,只要批处理文件和要处理的文件都存在,您发布的代码就会起作用