Allow CDD /S To Skip Over Unavailable TreeExclude List Entries

  • This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.
Jan 9, 2009
40
0
#1
In:
TCC 10.00.55 Windows XP [Version 5.1.2600]
TCC Build 55 Windows XP Build 2600 Service Pack 3
Registered to Carl Johnson - 1 System License

Running in a stand-alone TCC (4NT) window:
[C:\]ECHO %_TCTAB
0

I'm trying to set up a TreeExclude list so that it doesn't index drives that are not always mounted, such as external drives, VirtualClone drives, etc. without having to modify TreeExclude every time drive availability is changed. However, it appears that soon as a currently unavailable drive is encountered in the TreeExclude list the remainder of the list is ignored.

For example, in the following TreeExclude list only drive Q: is currently mounted (secondary backup [onsite] drive that I don't want indexed).
[C:\]set treeexclude
M:\;N:\;O:\;P:\;Q:\;V:\;W:\;X:\;Y:\;Z:\

Current drive Information:
[C:\]ECHO %_DRIVES
C: D: E: F: G: H: I: J: K: L: M: Q: S: T: U:
[C:\]ECHO %_HDRIVES
C: D: E: F: G: H: I: J: K: L: Q:
[C:\]ECHO %_READY
C: D: E: F: G: H: I: J: K: L: Q:
[C:\]ECHO %@DRIVETYPEEX[Q:]
3

Issuing a CDD /S command produces the following result:
[C:\]CDD /S
Indexing C:\
Indexing D:\
Indexing E:\
Indexing F:\
Indexing G:\
Indexing H:\
Indexing I:\
Indexing J:\
Indexing K:\
Indexing L:\
Indexing Q:\

As you can see, Drive Q: is being indexed even though drive Q: is in the TreeExclude list. It appears that the currently unavailable drives in the TreeExclude list are causing the remainder of the list to be ignored even if some of the items are available.

My suggestion is to change, or have the option to change, the behavior of CDD /S so it continues to process the entire TreeExclude list even if some of the entries are not currently available. This will prevent having to modify the list every time the drive configuration changes.

Carl
 

rconn

Administrator
Staff member
May 14, 2008
10,096
85
#2
BitPusher wrote:
> As you can see, Drive Q: is being indexed even though drive Q: is in
the TreeExclude list. It appears that the currently unavailable drives
in the TreeExclude list are causing the remainder of the list to be
ignored even if some of the items are available.

No, it's not -- if you look at the jpstree.idx file you'll see that Q:
isn't there.

What's happening is that the CDD /S command builds a list of all of the
drives, displays the drive name, and then calls the function that does
the indexing for each drive. That indexing function then checks the
TreeExclude variable to see if individual directories (or in your case,
drives) should be indexed.

Since you can specify the drives to index on the CDD command line, there
isn't any reason to define a TreeExclude consisting only of drive names.
(TreeExclude is intended to exclude directories, not entire drives --
or at least not exclusively a series of entire drives.)

Rex Conn
JP Software
 
Jan 9, 2009
40
0
#3
Thanks for the information Rex.

Since I didn't understand how CDD worked internally at the time, I just assumed that the message indicating that drive Q: was being indexed meant just that. It never occurred to be to browse JPSTREE.IDX to verify that.

Actually I have some directories in my "real" TreeExclude list, but I simplified it for the original post. Now that I know how this works, I'll set up an Alias (CDDIDX) that only includes those drives that I want to index.

Thanks again for the reply and information.

Carl