I’ve written before about RoboCache, a command line utility I wrote for managing the offline files cache in Windows Vista, Windows 7, and now Windows 8. After using the utility internally for a few years, I decided that I might as well clean it up and make it available to the rest of you. RoboCache is now available at the ManuSoft web site. There is a shareware version available, and you can purchase the registered version at the ManuSoft store (cost is 25 USD for a single user license).
It’s nothing fancy, but it works great for my needs. The command syntax is modeled after the ROBOCOPY command, and is designed for handling an entire directory tree recursively, filtering files and folders by wildcard. My typical use case is running it from a batch file to pin remote Visual Studio project files on my laptop before travelling. Visual Studio project folders contain a lot of temporary build files and output files that don’t need to be (and therefore shouldn’t be) included in the cache. The goal is to pin only the necessary files, ignoring the ones that are not needed or will be recreated when the project is built. Here’s a sample call to recursively pin all files in the ‘Build’ folder (this is all one line in a batch file executed from the laptop):
ROBOCACHE Build /op:pin /s /xd debug* release* x64 Win32 .svn _* obj bin ipch /xf *.log *.tlog *._ls *.ncb *.user *.suo *.aps *.ilk *.pch BuildLog.htm *.err *.dmp *.pdb !*.bat #*.bat *.chm *.dia *.aps *.lnk *.Res.dll *.zip *log.txt *report.txt *.winmerge *.sdf *.opensdf
Programmers might notice that the /xd (ignore directories) and /xf (ignore files) wildcard lists look very similar to what one might encounter in a Subversion commit script. In fact, when I created the batch file I just copied and pasted from my SVN ignore lists. For me, the benefit of using RoboCache in this way is that only the minimum needed files are cached. After working on the cached files while I’m out of the office, my changes automatically sync to the folders on my desktop when I return to the office. I do use Subversion repositories for all my projects, and could just as well commit my remote changes to the repository, then update my desktop from the repository; however by using the offline files cache, the syncing all happens automatically and I never have to think about it.
RoboCache can do more than just pin and unpin files. It can perform any of ten operations on the target files (or any of four administrative functions on the files cache itself), including some operations that are not exposed through the Windows user interface. Below is a list of all currently supported operations (captured from the help screen, and not showing the available command line options for each operation).
/OP:cmd :: OPeration to perform (default is /OP:info).
:: info : display status info about the target(s)
:: pin : assure offline availability
:: unpin : unpin the target(s)
:: sync : synchronize cached files with remote files
:: rename : rename cached item (requires reboot)
:: delete : delete cached item
:: suspend : suspend the target folders (ignores files)
:: unsuspend : unsuspend the target folders (ignores files)
:: online : transition to online state
:: offline : transition to offline state
:: enable : enable offline files cache (ignores target)
:: disable : disable offline files cache (ignores target)
:: encrypt : encrypts offline files cache (ignores target)
:: decrypt : decrypts offline files cache (ignores target)
The installer simply adds RoboCache.exe to your system folder; no folders are created and no other changes are made. The shareware version of RoboCache displays a nag notification balloon in the system tray, but is otherwise completely functional. There is no separate documentation, however ROBOCACHE /? displays syntax and command options.
9 thoughts on “RoboCache for Windows offline files cache management”
Hi Owen, this looks like an interesting tool. We use offline files with people’s redirected folders (Desktop, Documents, etc.) to ensure they have access when at home. However, the thing I am looking for is a way to monitor if anything relating to the sync is broken. For example, does the sync fail, or do certain files not sync. Does robocache have any capability to return this information such that I could do automatic status checks on people’s offline cache health through a local scheduled task, etc.? The green sync taskbar icon is helpful but I don’t want to count on users continually checking that and letting me know. Thanks! -Tim
Tim, I may be overlooking something, but I don’t think RoboCache will be much use for monitoring and reporting. I think there are other administrative monitoring tools that would be more appropriate for the job, but I don’t have any specific experience with monitoring for sync failures.
Thanks for this interesting tool. Much like the first comment a simple was of being able to query if the cache is in sync would be useful. We have a need to disable offline files on the 10,000+ desktops it has been enabled on but if we just switch it off via GPO any unsynced data will be lost…
Do you have a portable distribution for this (sans installer)?
I’m trying to install it, but the .MSI hangs on my machine (Win8.1 Pro, x64). I tried using 7-Zip to extract the only executable in the package, but as that .EXE is 16-bit it won’t run (assuming it’s the correct .EXE).
Jeff, it’s a managed (.NET) executable. The current shareware version MSI is 570,368 bytes. I think it’s likely that your file is truncated or corrupt. You do need have Administrator privileges, but it shouldn’t hang in any case as long as you’re running as the logged in user. You can use msiexec command line options to generate a log with diagnostic information. The log should help identify the problem. In any case, it’s best to correspond via email for support issues as I don’t always notice comments here.
Thanks for putting this out. CSC is a convoluted piece of kit. any tool to manage that is welcome. We downloaded your software to try and understand a problem we were having but couldn’t quite get our heads around the syntax. Say if I was using laptop W-T-005 and which ahs regular user AnnaM, I log in as local admin and how do I run robocache to look at what the user has in the cache ?
A few more examples would go a long way to make this software easy to use and as a result more popular ( if not already). If it’s already popular then that shows what numbskulls we are in our team!