What's going on here?????

#1
As I usually do the input and output of a TCC session:
Code:
[E:\]Dir all*consi* /ad /s /f
E:\Public Radio Shows\All Things Considered
E:\Public Radio Shows\All Things Considered and Car Talk
E:\Public Radio Shows\All Things Considered and Marketplace

[E:\]Dir C:\all*consi* /ad /s /f
[E:\]Subst
D:\: => C:\D
E:\: => C:\E
The obvious question is why the dir on the "E" drive is finding the directories when the dir on the "C" drive is not given that (as shown) the "E" drive is subst'd to a directory (name "E" of course) on the "C" drive.
 
#3
Excuse me but the drive letter "E" is really subst'd to a directory named "E" on the "C" drive (there is no other drive) and it is exactly the same directory command other than the fact that one starts at the root of the subst'd "E" drive (which is the "E" directory) and the other starts at the root of the "C" drive. And if I go directly to the root directory of the "C" drive ("C:\") and execute exactly the same command as I did on the "E" drive (Dir all*consi* /ad /s /f) I get the the same thing I got in the first example - nothing. Whereas if I execute "Dir E:\all*consi*" from the root directory of the "C" drive I get the three directories containing the string "All Things Considered". And note that the directories that are found are in the "Public Radio Shows" directory meaning that the "/S" is working as it should.
 
Last edited:
Aug 23, 2010
249
2
#4
No excuses.
What you expect it to do, is to separate your pattern into significant (for you) part "all*consi*" and insignificant (for you) part "C:\".
Unfortunately for you, the DIR command don't have an embedded Artificial Idiocy, and do only what it can do.
In your case, it's faithfully enter each directory and match file names in that directory against pattern "C:\all*consi*". Quite unsurprisingly, it never match anything except directories on the root of drive C:.
Code:
$ dir C:\pro*fi* /S /A:D /F
C:\Program Files
C:\Program Files (x86)
 
#5
I rather think Dan's command should work. He's asking for directories (/ad) with names matching a pattern, located anywhere (/s) on the C: drive. Such a command works here:
Code:
v:\> dir /s /a:d /f c:\ab*ef*
C:\e\abc def
 
#7
AnrDaemon you are, simply put, incorrect. Note from a previous posting that "Dir E:\all*consi*" works fine from the C: drive, it is only "Dir C:\all*consi*" that does not even though the E: drive is subst'd to a directory (named "E") on the C: drive. And I have to add something that is even stranger: "Dir C:\all*consi* /S /F" matches "C:\D\D\All Things Considered.V2014-07-19.mp3" but not anything in the subdirectory "C:\E\Public Radio" (which has multiple "All Things Considered" files in it). (And note the only difference in what is matched is "C:\D\D\" vs. "C:\E\Public Radio" which is logically the same.) As far as aliases go, TEA-Time, I do have an alias for the "Dir" command, it is simply "*Dir /H" to normally hide the dot and double dot entries which I obviously don't care about and would rather not see. As you can see from the previous files matching the pattern are found in the "C:\D\..." but not in "C:\E\...". If you tell me that that doesn't make any sense I would agree wholeheartedly but what is is. (And I will note that the search "C:\E\all*consi*" does work and produces the expected results.)