windows中的subst与虚拟驱动器(盘符)

目录


subset

将路径与驱动器号关联。也就是把一个目录当作一个磁盘驱动器。

       语法如下:

SUBST [drive1: [drive2:]path]
SUBST drive1: /D
参数描述
drive1:指定要分配路径的虚拟驱动器。
[drive2:]path指定物理驱动器和要分配给虚拟驱动器的路径。
/D删除被替换的(虚拟)驱动器。
不带参数的SUBST显示当前虚拟驱动器的列表。

示例

       下面来看个例子,加深印象。
       例:将目录D:\project\cpp映射为Z盘。

subst /D Z:                           rem 先解除之前的映射
subst Z: D:\project\cpp

       执行这个批处理脚本后,驱动器列表中就会出现一个盘符为Z的驱动器。
       也可以同时指定多个目录与多个虚拟驱动器关联。这么做无非是将目录与某个盘符关联起来,有什么用呢?
       我们已经知道,subst的功能,就是将某目录与驱动器关联。这样,对某个驱动器的访问,就等同于对相应目录的访问。对于一个开发团队开说,每个成员的工作目录可能并不相同,这就可能给工作交流造成一些影响,比如,成员A的工作目录在D盘,成员B的工作目录在G盘,那么将A的项目交给B时,B可能就需要做一些配置,才能让A的项目工作起来。如果他们将各自的工作目录都映射为相同的虚拟驱动器,比如Z盘,将所有工作都针对Z盘来做,每个成员都使用相同的配置,交流起来更为方便。即将虚拟的驱动器作为一个中间层,通过它屏蔽了底层实际目录的差异。
       可能会有人说了,既然是让所有人使用相同的配置,那么在刚开始就强制要求大家使用一致的工作目录不就好了。这样做无可厚非,但是忽略了一些细节,比如以下两条:

  1. 可能有的电脑上缺少某个盘符,而这个恰好又是被要求作为工作目录所在的盘符。
    对于这种情况,重新分区或添加新硬盘,或更改原驱动器的盘符,都不如直接映射一个虚拟驱动器来的方便。
    重新分区,操作相对麻烦,还有造成数据丢失的风险;添加新硬盘,则增加了公司成本;更改原驱动器盘符,则针对的是整个原驱动器。使用subst,只需要将某一目录映射成驱动器即可,且可随时修改与解除映射,方便而灵活。
  2. 项目开始前并没有规划好这方面的工作。随着项目的进行,问题逐渐暴露出来,这时再要求大家进行修改,工作量相对较大,且项目成员可能会有情绪。而使用subst,只需要几条命令组成的批处理,就可以解决大部分问题。
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Makefilesubst函数用于替换字符串。它的语法是$(subst from,to,text),其from是要被替换的字符串,to是替换后的字符串,text是要进行替换操作的文本。subst函数会将text所有的from替换为to,并返回替换后的结果。\[1\] 举个例子,假设我们有两个变量CC_COMPILE_FLAG和ONLY_CC_COMPILE_FLAG,我们想要将CC_COMPILE_FLAG与ONLY_CC_COMPILE_FLAG相匹配的部分删除,可以使用如下的语法: CXX_COMPILE_FLAG := $(subst $(ONLY_CC_COMPILE_FLAG),,$(CC_COMPILE_FLAG))\[2\] 这样,CXX_COMPILE_FLAG就会得到CC_COMPILE_FLAG删除了与ONLY_CC_COMPILE_FLAG相匹配部分的结果。 需要注意的是,如果没有指定返回值变量来接收subst函数的返回值,会导致"missing separator"的错误信息输出。因此,在使用subst函数时,务必指定一个变量来接收返回值。\[2\] \[3\] #### 引用[.reference_title] - *1* [Makefile 里的 subst 函数](https://blog.csdn.net/mrwangwang/article/details/25738287)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Make内置的subst函数的使用注意事项](https://blog.csdn.net/ZHISHAN_IoT/article/details/84136315)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值