Board logo

标题: [系统相关] 【已解决】求助vbs与bat混编修改虚拟盘符的卷标 [打印本页]

作者: kingshui    时间: 2015-9-8 12:43     标题: 【已解决】求助vbs与bat混编修改虚拟盘符的卷标

本帖最后由 kingshui 于 2015-9-9 13:20 编辑

我想改变我用subst创建的虚拟盘符的卷标
已知下面的命令无法改变由subst创建的盘符
  1. @echo off
  2. subst X: c:\personalfiles
  3. wmic logicaldisk where "deviceid='X:'" set volumename="Development"
  4. pause
复制代码
但是可以用这个vbs脚本来改变
  1. Set oShell = WScript.CreateObject("Shell.Application")
  2. oShell.NameSpace("X:\").Self.Name = "Development"
复制代码
实话了VBS不熟悉。。。
我改成这样没有生效:
  1. @echo off
  2. subst X: c:\personalfiles
  3. mshta vbscript:CreateObject("Shell.Application").NameSpace("X:\").Self.Name = "Development"
复制代码
现在想请教下如何修改上面的脚本才能生效?谢谢。

BTW:只想研究批的处理方案。

回复 2# flyinnet9

谢谢回复,但是自己终于搞定了,
  1. :On Error Resume Next
  2. Sub bat
  3. echo off & cls
  4. '&subst X: c:\personalfiles
  5. start wscript -e:vbs "%~f0"
  6. Exit Sub
  7. End Sub
  8. Set oShell = WScript.CreateObject("Shell.Application")
  9. oShell.NameSpace("X:\").Self.Name = "Personal Files"
复制代码

作者: flyinnet9    时间: 2015-9-8 14:37

cmd 下label命令可以更改卷标,虚拟盘符的不确认,你可以试一下
作者: kingshui    时间: 2015-9-8 14:55

label改不了虚拟盘的卷标的,跟wmic的操作一样。
作者: CrLf    时间: 2015-9-8 17:14

mshta 中只处理 %1 的参数,试试这个:
  1. mshta vbscript:CreateObject("Shell.Application").NameSpace("X:\").Self.Name="Development"
复制代码
或者这个:
  1. mshta "vbscript:CreateObject("Shell.Application").NameSpace("X:\").Self.Name = "Development""
复制代码

作者: pcl_test    时间: 2015-9-8 20:27

  1. mshta VBScript:Execute("CreateObject(""Shell.Application"").NameSpace(""X:\"").Self.Name=""Development"":close")
复制代码

作者: kingshui    时间: 2015-9-9 13:18

回复 4# CrLf
CrLf你的两行我都重新试了下,还是没有起到作用。
作者: kingshui    时间: 2015-9-9 13:19

回复 5# pcl_test


    pcl_test大大的起作用了,,我也这样写过,但是没注意双引号的问题。

感谢两位。




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