vbscript - 在 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文件
解决方案
您在命令字符串中的变量&
周围缺少一些内容。它应该如下所示:strFolderName
makefile
"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
。
推荐阅读
- javascript - 创建一个函数以在 Javascript 中按对象的值对对象数组进行排序
- node.js - 节点usb打印机
- android - 将 ArrayList 的 ArrayList 传递给另一个类
- javascript - 试图让个人网站配色方案与 Flux 色温相匹配
- webapi - Persona U 是 U 4500 Web API
- api-platform.com - 使用 API 平台自定义 REST 操作的最佳实践
- java - Spring webflux Security - 使用属性禁用 csrf
- google-play - 如何更新 Google Play 控制台上正在审核的 App 的 App Bundle。我错误地上传了一个错误的 App Bundle,现在我想更新它
- calendar - 如何获取共享 O365 日历的 URL?
- git - 如果文件大小超过 26 MB,则无法以编程方式推送到 GIT 存储库