标题: [系统相关] [已解决]批处理如何实现隐藏/禁止访问/禁用/启用移动磁盘? [打印本页]
作者: ygqiang 时间: 2016-4-23 13:15 标题: [已解决]批处理如何实现隐藏/禁止访问/禁用/启用移动磁盘?
本帖最后由 pcl_test 于 2016-4-29 19:14 编辑
[已解决]bat批处理如何实现隐藏/禁止访问/禁用/启用移动磁盘?19楼剩下2个问题需要解决。
bat搭配第3方命令如何实现?某个可移动盘符不可访问。就在设备管理器里面,停用。
遇到的问题是:
1、多台不同的台式机,分别是xp系统或者win7系统。
2、因为会经常遇到很多不同品牌/型号的、非单一固定设备的、多合一读卡器。
这些读卡器每个卡槽都会显示盘符,如果某些卡槽不插入卡,就会无法访问盘符。
想要解决的是:
1、平时隐藏、禁止显示这种不能打开的盘符
2、偶尔需要在某个卡槽插入存储卡,就开启、显示这种盘符
下面的bat代码,可以实现xp/win7系统,隐藏不可读取/无法访问的盘符。
但找不到恢复/开启显示:这种不可读取/无法访问的读卡器盘符的方法。。
具体请看19楼。只要解决那2个问题,就可以达到预期效果了。- @echo off
- echo 移动磁盘:
- for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- fsutil fsinfo drivetype %%a: | find "移动">nul && (
-
- fsutil fsinfo volumeinfo %%a:\ | findstr "错误" >nul && echo %%a不可读取 && mountvol %%a: /d
-
- mountvol /L
-
-
- )
- )
-
- cls
- exit
复制代码
作者: ygqiang 时间: 2016-4-23 13:16
截图如下。
作者: Nsqs 时间: 2016-4-23 13:41
百度搜devcon
作者: ygqiang 时间: 2016-4-23 14:58
回复 3# Nsqs
因为会经常遇到很多不同品牌/型号的、非固定设备id的、多合一读卡器。
有没有比较通用的方法禁用这种盘符?
作者: ygqiang 时间: 2016-4-24 07:07
多谢。。。。
作者: CrLf 时间: 2016-4-24 08:53
mountvol F: /d
装载的时候,把 mountvol 里显示为空的装载点装上即可
作者: ygqiang 时间: 2016-4-24 20:25
回复 6# CrLf
运行:mountvol F: /d
win7系统下,我的电脑里面,看不到f盘了。下次如何启用/显示f盘呢?
作者: pcl_test 时间: 2016-4-24 20:32
回复 7# ygqiang
重新挂载
作者: ygqiang 时间: 2016-4-24 20:43
本帖最后由 ygqiang 于 2016-4-24 20:45 编辑
回复 8# pcl_test
具体如何操作呢?
关键是:想要重新挂载。就不知道盘符了啊。
作者: pcl_test 时间: 2016-4-24 21:05
回复 9# ygqiang
获取没有装入点的卷名(GUID),分配个不存在的盘符,执行命令mountvol 盘符: 卷名(GUID)
作者: ygqiang 时间: 2016-4-24 22:20
回复 10# pcl_test
获取没有装入点的卷名(GUID)??
如何实现?
作者: pcl_test 时间: 2016-4-24 22:30
回复 11# ygqiang
删除后,执行mountvol /l,what did you see
作者: ygqiang 时间: 2016-4-24 22:36
回复 12# pcl_test
mountvol /l
显示效果跟下面的一样。
mountvol /?
作者: pcl_test 时间: 2016-4-24 22:41
回复 13# ygqiang
比如可以看到
作者: ygqiang 时间: 2016-4-24 22:47
本帖最后由 ygqiang 于 2016-4-25 06:31 编辑
回复 14# pcl_test
mountvol /l>1.txt
创建、删除或列出卷装入点。
MOUNTVOL [drive:]path VolumeName
MOUNTVOL [drive:]path /D
MOUNTVOL [drive:]path /L
MOUNTVOL [drive:]path /P
MOUNTVOL /R
MOUNTVOL /N
MOUNTVOL /E
path 指定装入点将驻留的现有 NTFS 目录。
VolumeName 指定装入点的目标的卷名称。
/D 从指定的目录中删除卷装入点。
/L 列出指定目录的已装入的卷名称。
/P 从指定目录删除卷装入点,卸下此卷并使此卷无法装入。您可以创建
一个卷来再次使此卷可以装入。
/R 删除不在系统中的、卷的装入点目录和注册表设置。
/N 禁用新卷的自动装入。
/E 再次启用新卷的自动装入。
当前装入点的 VolumeName 可能值为:
\\?\Volume{ff641546-64dc-11e5-9fd0-806e6f6e6963}\
C:\
\\?\Volume{ff641547-64dc-11e5-9fd0-806e6f6e6963}\
D:\
\\?\Volume{4f64d9d0-e4e1-11e5-942a-bc5ff42115b2}\
G:\
\\?\Volume{4f64d9cb-e4e1-11e5-942a-bc5ff42115b2}\
*** 无装入点 ***
作者: ygqiang 时间: 2016-4-24 22:48
回复 13# ygqiang
mountvol
xp系统下无效?
只能在win7系统下运行吧?
作者: CrLf 时间: 2016-4-25 00:11
回复 16# ygqiang
呃,您究竟是怎么毕业的...
另外,论坛空间才 500M,亲们以后能不能少发图,这输出的内容明明可以复制的
作者: ygqiang 时间: 2016-4-25 06:31
回复 17# CrLf
恩。图片尽量不发。
多谢。搜索到了。
xp下也有mountvol这个命令,不过只有/D 和/L 二种参数。
作者: ygqiang 时间: 2016-4-25 10:15 标题: bat如何:获取未分配的盘符字母,搜索txt文件关键字?
回复 14# pcl_test
bat如何:获取未分配的盘符字母,搜索txt文件关键字?
xp和win7系统环境下。
1、检索出系统、所有未分配的盘符字母,保存到1.txt文件(1行保存1个)
2、搜索test.txt文件关键字对应的项目,保存到2.txt文件(1行保存1个)。
比如搜索关键字是:*** 无装入点 ***
对应的项目分别是:
\\?\Volume{24ce4c5c-0a81-11e6-a77b-00242171631f}\
\\?\Volume{24ce4c5d-0a81-11e6-a77b-00242171631f}\
3、分别从1.txt和2.txt中取一行,分别赋值给变量aa、bb
执行mountvol %aa% %bb%
直到2.txt取完所有行。
2.txt里面有几行,就执行几次mountvol命令。
不用管1.txt有多少行。。
比如:mountvol f: \\?\Volume{24ce4c5c-0a81-11e6-a77b-00242171631f}\
mountvol h: \\?\Volume{24ce4c5d-0a81-11e6-a77b-00242171631f}\
test.txt、1.txt、2.txt文件内容如下
问题1、bat批处理代码如下- @echo off
- for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
- rem if not defined pan (
- subst "%%i:" "%temp%" >nul 2>nul && (
- subst "%%i:" /d >nul 2>nul && set last_lab=%%i:
- echo %%i:>>1.txt
- ))
- )
- pause
-
- exit
复制代码
作者: codegay 时间: 2016-4-25 12:10
一直在问问题,从不进步?
作者: pcl_test 时间: 2016-4-25 20:33
不会变通是硬伤
http://www.bathome.net/viewthread.php?tid=37904
作者: ygqiang 时间: 2016-4-26 17:25
回复 22# pcl_test
帮忙解决下19楼的问题吧。谢谢。
作者: codegay 时间: 2016-4-26 23:43
脑残吗 ?
作者: ygqiang 时间: 2016-4-27 23:40
求大神帮忙解决问题。谢谢
作者: ygqiang 时间: 2016-4-29 13:07
本帖最后由 ygqiang 于 2016-4-29 13:37 编辑
已经解决- @echo off
- if exist c:\test.txt del /q c:\test.txt
- mountvol /L>>c:\test.txt
-
- mountvol /L>c:\test.txt
-
- ping 127.0.0.1 -n 3 >nul 2>nul
-
- @echo off
-
- echo 获取未分配的盘符
- if exist c:\test1.txt del /q c:\test1.txt
- for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
- rem if not defined pan (
- subst "%%i:" "%temp%" >nul 2>nul && (
- subst "%%i:" /d >nul 2>nul && set last_lab=%%i:
- echo %%i:>>c:\test1.txt
- ))
- )
-
-
- ping 127.0.0.1 -n 2 >nul 2>nul
-
- @echo off&setlocal enabledelayedexpansion
-
- echo 搜索txt文件关键字
- for /f "tokens=1 delims=:" %%a in ('type c:\test.txt^|findstr /n "\*\*\* *无装入点 *\*\*\*"') do (
- set/a i=%%a-1
- set #!i!=1
- )
- (for /f "tokens=1* delims=:" %%a in ('type c:\test.txt^|findstr /n .*') do (
- if defined #%%a (echo %%b)
- ))>c:\test2.txt
-
-
- ping 127.0.0.1 -n 2 >nul 2>nul
-
-
-
-
- @echo off&setlocal enabledelayedexpansion
-
- echo 提取txt文件,按行对应提取
- for /f "delims=" %%b in (c:\test2.txt) do (
- set /a n+=1
- call :p2 !n!
- echo !p! %%b && mountvol !p! %%b
- )
-
- goto :yctypf
-
-
-
-
- :p2
- set m=0
- for /f "delims=" %%c in (c:\test1.txt) do (
- set /a m+=1
- if !m! == %1 set p=%%c
- )
- goto :eof
-
-
-
- :yctypf
-
- ping 127.0.0.1 -n 20 >nul 2>nul
-
- @echo off
- echo 移动磁盘:
-
- echo 隐藏停用不可访问的盘符
- for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- fsutil fsinfo drivetype %%a: | find "移动">nul && (
-
- fsutil fsinfo volumeinfo %%a:\ | findstr "错误" >nul && echo %%a不可读取 && mountvol %%a: /d
-
- )
- )
-
- 1pause
- cls
-
- if exist c:\test.txt del /q c:\test.txt
- if exist c:\test1.txt del /q c:\test1.txt
- if exist c:\test2.txt del /q c:\test2.txt
-
- 1pause
- exit
-
-
-
-
-
-
- xp下也有mountvol这个命令,不过只有/D 和/L 二种参数。
-
- copy /y devcon.* C:\WINDOWS
- copy /y devcon.* C:\WINDOWS\system32
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |