首页 > 解决方案 > 在 wsh.run 命令字符串中插入变量

问题描述

我想在我的
makefile = objShell.run (""""""cmd /K CD "strFolderName" & dir /-n > "strFolderName"\wk3result.txt"""""",1,True)命令中使用我的 VBScript 输入变量。

我试过cmd /K cd '"strFolderName"'了……我找不到目录,所以我不相信我的变量strFolder名被正确地放入了cmd行代码中。

这是我的脚本:

Const cTitle = "WK3 Assignment"

Dim objFSO, objFolder
Dim strFolderName, objShell
strFolderName = InputBox("Which Folder", cTitle)

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFolder = objFSO.GetFolder(strFolderName)

If objFSO.FolderExists(strFolderName) Then
    WScript.Echo "Folder is there"
Else
    WScript.Echo "Folder is not there"
End If


Set objShell = WScript.CreateObject("WScript.shell")
makefile = objShell.run (""""""cmd /K CD "strFolderName" & dir /-n >      "strFolderName"\wk3result.txt"""""",1,True)

期望得到一个带有输入文件夹的目录结果的txt文件

标签: vbscriptwsh

解决方案


您在命令字符串中的变量&周围缺少一些内容。它应该如下所示:strFolderNamemakefile

"cmd /K CD """ & strFolderName & """ dir /-n > """ & strFolderName & "\wk3result.txt"""

整个命令:

makefile = objShell.run ("cmd /K CD """ & strFolderName & """ dir /-n > """ & strFolderName & "\wk3result.txt""", 1, True)

更好的是,为您的命令创建一个变量,以防您需要查看它以进行故障排除:

Dim strCommand
strCommand = "cmd /K CD """ & strFolderName & """ dir /-n > """ & strFolderName & "\wk3result.txt"""
makefile = objShell.run(strCommand, 1, True)

通过这种方式,您可以检查命令的内容MsgBox strCommand


推荐阅读