33

I have some folder, say C:\foo I want to mount as drive M:\

In linux I would do this with a bind mount.

Ian Kelling
  • 2,661
  • 6
  • 23
  • 21

9 Answers9

50

You can use the subst command in Windows.

subst m: c:\foo

To make a persistent redirection, you can edit the registry. Add a string (REG_SZ) value to:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices

Set the name of the value to the drive letter (e.g. M:), then the data to:

\??\C:\foo\foosub

This method will work across logins and reboots. I tested this on Windows 2008, so it should also work on Vista, XP, 2003 and 2000.

Doug Luxem
  • 9,612
  • 7
  • 50
  • 80
  • 1
    Ah, +1. Forgot about the subst command, haven't used it in 10+ years! I don't think it's persistent though? Maybe I'm wrong, it's been a while... – squillman Jun 11 '09 at 22:01
  • Stick it in a logon or startup script then, and it'll be happily persistent. You can do this in the local group policy no need to go to domain level. – Maximus Minimus Jun 11 '09 at 22:15
  • 1
    Hey, that's nice! I didn't know about that, +1, I'll be using it.. – Greg Meehan Jun 11 '09 at 23:53
  • that's the way to go - unfortunately, there are several cases where a subst'ed drive doesn't get properly recognized. Don't be surprised if you get weird error messages from Windows at times, when you do stuff with your subst drive..... – marc_s Jun 12 '09 at 07:31
  • squillman, gave you a vote since this solution is not persistent. Good answer though ;-) – MathewC Jun 12 '09 at 19:14
  • Thanks boss :) Yes, subst is a great command. Highly useful for shortening your path. – squillman Jun 12 '09 at 19:28
  • 2
    I added another method that is persistent. – Doug Luxem Jun 12 '09 at 19:44
  • This also works with Windows 7. – Jim Fell Sep 01 '12 at 19:58
  • The registry entry also works persistently for Windows 10. Note that windows needs to be restarted for this to take affect the first time. – Ozair Kafray Dec 23 '16 at 06:27
7

Subst also works in Vista:

C:\Users\juan>subst /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives

.

user9250
  • 71
  • 2
5
  • Right-click on the folder and select Sharing and Security
  • Select Share this folder
  • Give it a share name (eg- myshare)
  • hit Ok

Map a drive (M:) to \\yourcomputername\myshare

squillman
  • 37,883
  • 12
  • 92
  • 146
4

From the command line:

subst M: C:\foo

This works in Windows XP, haven't tested it in other versions.

goldPseudo
  • 1,106
  • 1
  • 9
  • 15
3

Subst is the correct answer. You should be aware that subst is a per-session setting. It goes away when you log out and if you use runas to create a secondary logon context your subst-drive won't be there for those apps.

You can create a shortcut (.lnk) in your startup group to re-create those subst drives. The target property of the .lnk needs to be something like this:

C:\Windows\System32\cmd.exe /c subst S: C:\Some\Extremely\Obscure\Path\Of\My\Own\src

We use this technique to ensure that all developers build debug symbols with the same path from S:\

There is also a visual subst applet out there.

Brian Reiter
  • 860
  • 5
  • 8
2

You can do this in PowerShell as well. I use the following to set a drive to my Suvbversion working folder:

new-psDrive -name SVN -psprovider FileSystem -root 'c:\documents and settings\xxxx\my documents\subversion\adminscripts\trunk'

You can then access it as:

cd svn:
Ryan Fisher
  • 2,228
  • 16
  • 13
  • 2
    Please note that the PowerShell method doesn't make the "drive" available outside of PowerShell, so no Explorer access. You can do it with COM objects, but at that point just call SUBST anyway. – Ryan Fisher Jun 12 '09 at 00:36
2

Another way to do this, that perhaps plays a bit better with having it mounted on start, is to use the trick at http://windows.microsoft.com/en-us/windows7/Create-a-shortcut-to-map-a-network-drive (i.e. My Computer -> Tools -> Map Network Drive) and take advantage of the fact that your local machine is a network host; I have just mounted, for example,

\localhost\Users\me\Documents\My Dropbox\Portable Music

to M: this way. You might be able to use \localhost\C$\ to access everything, but I had some trouble with that here (although it's worked for me elsewhere).

-Robin

rlpowell
  • 203
  • 1
  • 7
1

If you need something which is cross-session you could look at running both an iSCSI target as well as iSCSI client on the same box. Obviously this is dependent on your OS as to whether you need anything 3rd party to achieve it.

Joel Mansford
  • 985
  • 1
  • 5
  • 13
0

use Subst Stick this into a .bat file

@echo off
subst [DRIVE LETTER]: C:\[FOLDER]

Then save the batch file into the startup folder in the start menu. If you're on windows 8, you can find the startup folder by hitting Win+R then typing %appdata%\Microsoft\Windows\Start Menu\Programs\Startup

squillman
  • 37,883
  • 12
  • 92
  • 146
Link
  • 1