2012-03-12 90 views
4

我有一个批处理脚本,像这样调用另一个;批处理文件似乎被缓存

call \\myserver\mypath\myfile.bat 

这一直工作正常约6年。不过,我最近对由此行调用的批处理脚本进行了更改。我很快意识到我的改变导致了一个问题,所以我恢复了我的改变。

但是,似乎有些客户端仍在调用我的修改脚本。就好像他们有一个缓存副本。这可能吗?如果是这样,我如何清除缓存?

回答

0

我正在使用脱机文件。所以我编辑的批处理文件是我的机器上的本地副本。

2

是的,如果您尝试通过网络从远程计算机执行批处理文件,则会缓存批处理文件。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365201(v=vs.85).aspx

一个应用程序,可以从本地缓存中受益的类型是批处理文件。命令处理器一次读取并执行一行批处理文件。对于每一行,命令处理器打开文件,搜索行的开头,尽可能多地读取它,关闭文件,然后执行该行。每条线都会导致很多网络流量。通过在客户端上缓存整个批处理文件,可以大大减少网络流量。

我相信你可以使用net share命令的/cache:no参数禁用缓存。

http://technet.microsoft.com/en-us/library/bb490712.aspx

当然你也可以使用 “属性 - > Sharing->高级Sharing->缓存” 从Windows接口部分做同样的事情。

+0

我试过了,但用户仍然获得批处理文件的缓存副本。 – srayner 2012-03-12 14:20:53

+0

嗯,实际上“透明缓存”在默认情况下是禁用的,并且在网络缓慢时才使用。但也许它是由于某种原因启用的。请使用此链接检查它(http://www.windowsitpro.com/article/networking/q-how-do-i-enable-transparent-caching-in-windows-7-),并禁用它,如果它启用。我不确定是否是这种情况,但这可能会覆盖一些选项。 – 2012-03-12 16:08:17