Subst DOS命令

        Subst是DOS下的一个优秀的命令,它的可执行文件Subst.exe在C\Windows\Command文件夹下,其正规的中文名称应该是“给目录赋驱动器符命令”。它的功能是以磁盘驱动器符代替路径名称,以使驱动器符与指定的子目录路径等效。其命令格式很简单:Subst Drive1Drive2Path,其中“Drive1”是指定替代磁盘路径的虚拟的新驱动器符,“Drive2Path”是指定所要替代的文件夹及其路径。用户可以利用它将任意目录虚拟成一个磁盘驱动器,如果用户需要删除虚拟的盘符,可以执行Subst Drive1 /D命令。同时,并非所有的程序都可以正确使用Subst命令所生成的驱动器符,比如Format、Sys、Fdisk等一些如今还常用的命令,这些命令必须使用真实的驱动器,它们拒绝对Subst虚拟的驱动器进行操作。对于网络磁盘驱动器,Subst命令也是无能为力的。
初步了解了Subst命令的用途及用法,不妨再看看它的一些高级使用技巧。

1. 隐藏驱动器
Subst的看家本领是虚拟磁盘驱动器符,虽然微软建议用户采用没有使用的盘符进行虚拟,但并不表示它不能虚拟已经存在的盘符,比如A盘、C盘等。于是用户可以通过Subst命令虚拟A、C等盘符,直接覆盖这些已经存在的盘符,使他人无法看到该盘的真正内容,以达到隐藏真实驱动器的目的。例如,用户先在D盘根目录下创建一个名为“Aaa”的文件夹,最好将文件夹的属性设置为“只读”和“隐藏”。然后在C盘根目录下打开“Autoexec.bat”文件,加入以下代码:
@Echo Off
C\Windows\Command\Subst A D\Aaa
这样每次在系统启动后软盘的图标就变为硬盘的样子,其中的内容也变了,从而实现偷梁换柱的目的。需要还原的时候,只需在MS-DOS方式下,运行“Subst A /D”就行了。

2. 特殊软件的安装
有少数软件在安装时会提示需要从A盘中提取安装信息,这时难道只有将文件拷贝到软盘后再安装吗?完全没有这个必要,Subst命令可以“欺骗”这些需要用软盘安装的软件。用户把软盘中的文件全部拷贝到硬盘上的任意文件夹中,再将该文件夹用Subst命令虚拟成A盘后,即可顺利安装。

3. 模拟光盘自动运行
目前大部分多媒体光盘都带有一个自动运行命令,方便了用户的使用。然而若将光盘上的所有内容全盘拷贝到硬盘上就不能正常运行。这时,用户可以将放置光盘内容的文件夹虚拟成光盘驱动器(Subst F D\Guangpan,假设F为光驱),则软件能正常运行。


 

--------------------------------------------------------------------------------
 

Subst DOS命令有妙用

    尽管如今是Windows的天下,但是有些DOS命令还是很有用的,如Fdisk、Format等等,这里要说的是Subst命令,它的作用是用一个盘符来代替一个文件夹。别看它这个小程序,有时候还能够帮助我们解决大问题呢。

  1、免软盘安装软件

 
  有的软件在安装时需要从软盘中读取信息,但每次都从软盘中读取信息时间一长难免会对软盘造成伤害(可能我们身边的坏软盘已经有了一大堆了!)。其实,我们完全可以将软盘上的所有文件拷贝到硬盘上,如C:Floopy,以后要安装软件前,在“开始”“运行”窗口中输入 “Subst a: c: loopy”命令后就无需再插入软盘了。从而保护了我们的软盘。

  2、让WinZip以相对路径压缩文件

  不知道大家注意到了没有,在WinZip的“Add files”对话框中有一个“Save full path info”(WinZip 7.0为“Save Extra Folder Info ”)选项,一旦选中此项,WinZip就会连同文件除盘符外的所有路径均压入ZIP文件包中,下次释放时就会连同所有文件夹信息一起释放,有时会给我们带来一些不便。其实,要解决这个问题,使用Subst命令就行了。如要将c:zipfiles iles下的所有文件连同子文件夹下的文件压缩,则只要在“开始运行”窗口中输入 “Subst o: c:zipfiles iles”,然后打开资源管理器并双击O盘,这样选中所有的文件及文件夹即可以相对路径压缩了。

  3、刻录长路径文件

  现在使用CD-R来存储数据越来越普遍了,但是,许多光盘刻录软件都无法刻录长路径文件,一旦文件夹的层数超过了一定数目,则无法刻录。其实,聪明的读者看到上面第2点时就已经知道该怎么做了。也是将这些长路径文件所在文件夹仿制成一个盘,以后就可以任意拖动了。例如笔者将某一长路径文件夹仿制成一个J盘,然后在Nero - Burning Rom中刻录CD-R,完全正常嘛!


 

转载于:https://www.cnblogs.com/allenny/archive/2005/07/03/185397.html

在Makefile中,subst函数用于替换字符串。它的语法是$(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、付费专栏及课程。

余额充值