我有一个批处理脚本,像这样调用另一个;批处理文件似乎被缓存
call \\myserver\mypath\myfile.bat
这一直工作正常约6年。不过,我最近对由此行调用的批处理脚本进行了更改。我很快意识到我的改变导致了一个问题,所以我恢复了我的改变。
但是,似乎有些客户端仍在调用我的修改脚本。就好像他们有一个缓存副本。这可能吗?如果是这样,我如何清除缓存?
我有一个批处理脚本,像这样调用另一个;批处理文件似乎被缓存
call \\myserver\mypath\myfile.bat
这一直工作正常约6年。不过,我最近对由此行调用的批处理脚本进行了更改。我很快意识到我的改变导致了一个问题,所以我恢复了我的改变。
但是,似乎有些客户端仍在调用我的修改脚本。就好像他们有一个缓存副本。这可能吗?如果是这样,我如何清除缓存?
我正在使用脱机文件。所以我编辑的批处理文件是我的机器上的本地副本。
是的,如果您尝试通过网络从远程计算机执行批处理文件,则会缓存批处理文件。
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接口部分做同样的事情。
我试过了,但用户仍然获得批处理文件的缓存副本。 – srayner 2012-03-12 14:20:53
嗯,实际上“透明缓存”在默认情况下是禁用的,并且在网络缓慢时才使用。但也许它是由于某种原因启用的。请使用此链接检查它(http://www.windowsitpro.com/article/networking/q-how-do-i-enable-transparent-caching-in-windows-7-),并禁用它,如果它启用。我不确定是否是这种情况,但这可能会覆盖一些选项。 – 2012-03-12 16:08:17