Board logo

标题: [系统相关] 批处理把分区隐藏却显示不出来了? [打印本页]

作者: hanruiqi    时间: 2011-5-7 09:16     标题: 批处理把分区隐藏却显示不出来了?

用了你的代码,把H盘隐藏 却显示不出来了
  1. @echo off
  2. if exist h:\. (
  3. for /f "tokens=*" %%a in ('mountvol g: /l') do (echo %%a>"%~dp0.\Vol_g.ini"&&mountvol h: /d)
  4. ) else (
  5. if exist "%~dp0.\Vol_g.ini" (
  6. set/p g_vol=<"%~dp0.\Vol_g.ini"
  7. call mountvol h: %%g_vol%%
  8. ) else (
  9. for /f %%i in ('mountvol^|findstr "\\\\\?\\Volume"') do (mountvol h: %%i&&exit /b)
  10. )
  11. )
复制代码

作者: hanruiqi    时间: 2011-5-7 09:23

用我原始的显示出来了,用你那个代码只能隐藏 却不能显示啊。
作者: lxzzr    时间: 2011-5-7 09:52

本帖最后由 lxzzr 于 2011-5-7 09:53 编辑

我给你个(单个盘符)
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. if exist h:\. (
  4. mountvol h: /d
  5. ) else (
  6. for /f "tokens=1,2 delims=: " %%a in (
  7. 'mountvol ^| findstr /n "\*" ^&
  8. mountvol ^| findstr /n "\\\\\?\\Volume \\"'
  9. ) do (
  10. if not defined index set /a index=%%a-1
  11. if !index! == %%a (
  12. mountvol h: %%b
  13. exit
  14. )
  15. )
  16. )
  17. exit
复制代码

作者: terse    时间: 2011-5-7 11:20

  1. @echo off&setlocal enabledelayedexpansion
  2. if exist h:\ (
  3.    mountvol h: /d
  4. ) else (
  5.   for /f %%i in ('mountvol ^|findstr "\\ *"') do (
  6.     set vi=!vl!
  7.     set vl=%%i
  8.     if "!vl:\=!" equ "!vl!" mountvol h: !vi!
  9.   )
  10. )
  11. pause
复制代码

作者: hfg1977    时间: 2011-5-7 15:01

恢复楼主:
代码之所以错误,是因为你的目录下存在Vol_g.ini文件,而Vol_g.ini记录的是g:的卷信息, 当然会错误.
, 你把Vol_g.ini删除就行了.

不懂别人代码的情况下,修改代码会出现难以预料的问题, 很多问题又难以很快发现,这不但给自己造成困扰, 也
会造成别人的困扰.




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2