[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 【已解决】VBS如何引用系统环境变量值

本帖最后由 doswork 于 2016-8-19 17:39 编辑

请老手帮忙解答下,多谢!

目的:在“相对路径”目录下新建文件夹,怎么实现?
      原来直接建立没有问题,突然发现“相对路径”无法操作了……
  1. Set Fso = CreateObject("Scripting.FileSystemObject")
  2. '通常的建立文件夹,没有问题
  3. Fso.CreateFolder("c:\123")
  4. '想用“相对路径”替换,但总提示“路径未找到”,可能解决很简单,但新手就不知道怎么解决了……
  5. Fso.CreateFolder("%HOMEDRIVE%\123")
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 doswork 于 2016-8-19 17:35 编辑

回复 2# pcl_test


    用词不准确,确实应该说环境变量……
   新手嘛,第一反应就是简单“替换”了,然后发现行不通……
   多谢版主更正~

TOP

回复 3# yu2n


    多谢提供方法!
   这个方法确实管用,新手知道的方法有限,查阅资料也没有直接解决……

TOP

本帖最后由 doswork 于 2016-8-19 20:47 编辑

回复 3# yu2n


    追问“yu2n”老师另一个问题:  fso.CreateFolder 这个语句是创建目录,能不能实现 “WScript.run **,0” 这样的效果?(不弹出提示框)

   主要想解决一个问题,比如要创建的目录是"%HOMEPATH%\00\11",但是"%HOMEPATH%\00"都不存在,所以运行后总提示“路径未找到”,把弹出的提示框去掉。

   实现效果是:当"%HOMEPATH%\00\11"(没有"%HOMEPATH%\00"目录)不存在时,没有任何提示,也不做任何操作(不去强制建立"%HOMEPATH%\00\11"目录);
                                                              当"%HOMEPATH%\00"存在时,建立"%HOMEPATH%\00\11"目录。
  1. Set sh = CreateObject("WScript.Shell")
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. F2 = "%HOMEPATH%\00\11"
  4. if not fso.FolderExists(sh.ExpandEnvironmentStrings("%HOMEPATH%\00\11")) then
  5. fso.CreateFolder sh.ExpandenVironmentStrings(F2)
  6. end if
  7. '不存在目录“%HOMEPATH%\00”
  8. '这样写没解决弹出“路径未找到”提示框的问题……
复制代码

TOP

本帖最后由 doswork 于 2016-8-19 20:54 编辑

回复 8# pcl_test


    多谢版主提示~

   不过这里还不想暴力强制建立目录,因为想应用的环境是“桌面”和“desktop”(通过判断来二选一的创建文件/文件夹),暴力建立目录的后果就是程序多了会多很多 文件/文件夹 出来,比较麻烦,所以看有没有判断的方式来解决……

TOP

回复 8# pcl_test

版主帮忙补充下代码应该就解决了,我不知道怎么写……   多谢!
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. Set ws = CreateObject("WScript.Shell")
  3. folder = "%HOMEPATH%\00\11"
  4. if fso.FolderExists(ws) then
  5. '什么也不做(这句怎么写?)
  6. else ws.run "cmd /c md """&folder&"", 0
  7. end if
复制代码

TOP

回复 11# pcl_test


    多谢版主,不过两种方式的结果还是“暴力建立”目录 "%HOMEPATH%\00\11",当没有"%HOMEPATH%\00"时,不是不做任何操作,还是强制建立目录。

   可能我想的简单了,还不太好实现

TOP

回复 13# pcl_test


    呵呵,多谢版主!  我也是绕进去了~

TOP

本帖最后由 doswork 于 2016-8-23 19:27 编辑
1、2、
pcl_test 发表于 2016-8-19 21:28



    追加一个问题请教版主:用方法1的代码,如何将如下的批处理换成VBS版的,关键还是引号的位置,怎么调整才能正确运行? 多谢!
    xcopy c:\11\666\*.* c:\11\123\ /e /h /k /y  (将“C:\”替换成“%HOMEPATH%”)
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. Set ws = CreateObject("wscript.Shell")
  3. folder = ws.ExpandEnvironmentStrings("%HOMEPATH%")&"\00"
  4.   ws.Run "cmd /c xcopy " "&folder&"\11\666\*.*"  "&folder&"\11\123\" " /e /h /k /y ", 1
复制代码
1

评分人数

    • pcl_test: 指定回应某楼层的在相应楼层点回复,少引用PB -3

TOP

本帖最后由 doswork 于 2016-8-23 19:30 编辑

回复 16# pcl_test

非常感谢!
是我这里设置的 “Set sh = CreateObject("wscript.Shell")”  没完全改过来……  已经修改了

TOP

返回列表