[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
下帖中第一个for中括号里的$是转义符,即数字键6上的那个符号,¥是管道符号,回车键左边“\”键上的那个符号。我是用手机上的网,手机打不出这两个符号,所以楼主自己改下吧。

[ 本帖最后由 zljzsmzzx 于 2009-11-6 10:50 编辑 ]

TOP

  1. @echo off
  2. if "%~1" neq "a" (copy/y %~s0 "%temp%">nul&set nowdrv=%cd:~0,2%&cd/d "%temp%"&call %~nx0 a&exit)
  3. if/i "%nowdrv%" equ "%windir:~0,2%" (echo,系统分区不可更改。&pause&exit)
  4. setlocal enabledelayedexpansion
  5. for /f "delims=\" %%a in ('fsutil fsinfo drives$¥find /v ""') do (set/a n+=1&set drv=%%a&set drv!n!=!drv:~-2!&if /i "%nowdrv%" equ "!drv:~-2!" (set a=!n!&set/a b=!n!+1))
  6. call :set !drv%a%! X:
  7. call :set !drv%b%! Y:
  8. exit
  9. :set
  10. for /f %%i in ('mountvol %1 /l') do (mountvol %1 /d&&mountvol %2 %%i)
复制代码

TOP

回20楼

.楼主测试失败是因为原代码中一个copy命令不知为什么被替换掉了。现代码在19楼已修改。如果你要修改的盘是G盘和H盘,只要把批处理文件放到G盘下任意位置运行即可。如果还要执行其它命令就在call :set !drv%b%! Y:后加上cd/d x:,再在exit前加上自己要执行的命令就可以了。我测试了没问题。

TOP

回20楼

.楼主测试失败是因为原代码中一个copy命令不知为什么被替换掉了。现代码在19楼已修改。如果你要修改的盘是G盘和H盘,只要把批处理文件放到G盘下任意位置运行即可。如果还要执行其它命令就在call :set !drv%b%! Y:后加上cd/d x:,再在exit前加上自己要执行的命令就可以了。我测试了没问题。

TOP

楼主,你不要上来只说个不行啊什么的。你倒是说说哪不行了。是盘符依然没修改成功呢还是盘符改了但没重新启动那个程序呢?还有你的那个程序是在要修改盘符的那个移动磁盘里吗?这些你都要说清楚啊,你只一句不行我们就有得忙了,不但要找代码错在哪还得猜测你运行的时候错在哪。我每次给人写代码都经测试没问题后才会给出的。但我测试的环境和你使用的环境不同,所以每个问题都要你主动说清了我们才能针对你的使用环境修改代码,问一句答一句只会让你的问题越拖越久甚至没人愿意回答。

TOP

  1. @echo off
  2. if "%~1" neq "a" (set nowdrv=%cd:~0,2%&copy %~s0 "%temp%" >nul&cd/d "%temp%"&call %~nx0 a&exit)
  3. if /i "%nowdrv%" equ "c:" (echo,当前驱动器可能是系统分区,不可更改。&pause>nul&exit)
  4. setlocal enabledelayedexpansion
  5. for /f "delims=\" %%a in ('fsutil fsinfo drives^|find /v ""') do (
  6.     set/a n+=1
  7.     set drv=%%a
  8.     set drv!n!=!drv:~-2!
  9.     if /i "%nowdrv%" equ "!drv:~-2!" (set a=!n!&set/a b=!n!+1)
  10. )
  11. call :set !drv%a%! X:
  12. call :set !drv%b%! Y:
  13. cd/d x:
  14. taskkill /F /IM Vstart.exe
  15. start "" x:\Vstart.exe
  16. rem 如果只是运行这个程序而已就可以不用前面那句cd/d x:
  17. exit
  18. :set
  19. for /f %%i in ('mountvol %1 /L') do (mountvol %1 /d && mountvol %2 %%i)
复制代码
这次是在网吧里上了,测试过,没有问题,再不行的话那就是你电脑的个别问题了。
1

评分人数

TOP

返回列表