【问题标题】:Why doesn't WScript.Shell.ExpandEnvironmentStrings work with %CD%?为什么 WScript.Shell.ExpandEnvironmentStrings 不能与 %CD% 一起使用?
【发布时间】:2016-12-16 19:26:06
【问题描述】:

在命令行中,您可以使用echo %CD% 像这样输出当前目录:

Windows 脚本宿主提供the ExpandEnvironmentalStrings method,可以这样使用:

Dim objWshShell : Set objWshShell = CreateObject("Wscript.Shell")
MsgBox objWshShell.ExpandEnvironmentStrings("%WINDIR%")

但是,它不适用于%CD%。它只是返回相同的值,%CD%:

Dim objWshShell : Set objWshShell = CreateObject("Wscript.Shell")
MsgBox objWshShell.ExpandEnvironmentStrings("%CD%")

为什么这不起作用?我知道还有其他方法可以获取当前目录;这只是一个好奇。

【问题讨论】:

    标签: vbscript environment-variables wsh


    【解决方案1】:

    变量 %CD% 是 CMD 内置的自动变量,而不是像 %PATH%%USERNAME% 这样的环境变量。它只能在 CMD 中使用,例如

    cmd /c echo %CD%
    

    变量%TIME%%DATE%%ERRORLEVEL% 也是如此。

    如果您想要 VBScript 中的当前工作目录,您需要使用 WshShell 对象的 CurrentDirectory 属性

    Set sh = CreateObject("WScript.Shell")
    WScript.Echo sh.CurrentDirectory
    

    或目录.expand the path

    Set fso = CreateObject("Scripting.FileSystemObject")
    WScript.Echo fso.GetAbsolutePathName(".")
    

    【讨论】:

      猜你喜欢
      • 2018-03-09
      • 2021-06-14
      • 2012-10-09
      • 2020-03-18
      • 2017-11-21
      • 2019-04-11
      • 2012-09-19
      • 2013-12-30
      • 2011-04-20
      相关资源
      最近更新 更多