Vbscript 我能';运行由子例程创建的命令
我有一个文件夹/子文件夹组合数组。我的子例程获取文件夹组合以及常量路径和提供的日期戳,并生成命令,返回变量“rcmd”- 如你所见,我现在有“MsgBox”帮助。MsgBox始终正确显示我需要的命令。但是,一旦我尝试将其更改为-Vbscript 我能';运行由子例程创建的命令,vbscript,subroutine,wsh,Vbscript,Subroutine,Wsh,我有一个文件夹/子文件夹组合数组。我的子例程获取文件夹组合以及常量路径和提供的日期戳,并生成命令,返回变量“rcmd”- 如你所见,我现在有“MsgBox”帮助。MsgBox始终正确显示我需要的命令。但是,一旦我尝试将其更改为- For each location in myArray Call RoboCopy Wsh.Run rcmd, 0, true Next 它没有任何作用。我是否需要以不同的方式向Wsh.run提供我尝试运行的命令?顺便说一句,Wsh已经被定义为WSc
For each location in myArray
Call RoboCopy
Wsh.Run rcmd, 0, true
Next
它没有任何作用。我是否需要以不同的方式向Wsh.run提供我尝试运行的命令?顺便说一句,Wsh已经被定义为WScript.Shell。很多事情可能会出错-我想
我不使用
Robocopy
,但我脑子里有两件事。首先,名为Wsh
的变量对我不起作用(不确定原因)。其次,我认为更重要的是,您需要调用CMD.exe
,即:
Set WshShell = CreateObject("WScript.Shell")
For each location in myArray
Call RoboCopy
WshShell.Run "cmd /c " & rcmd, 0, True
Next
我复制了消息框文本,命令运行正常,因此我知道这不是命令的语法问题。但是,我将尝试“%comspec%/K”,看看它是如何工作的。我的上帝你在开玩笑吗?!你完全正确,帕纳约。出于某种原因(尽管定义正确),脚本引擎不喜欢我对对象使用“Wsh”。我做了一个快速的“全部替换”,并将所有内容都改为“oShell”,效果很好。谢谢你的小“Wsh不适合我(不知道为什么)…”这是我需要的休息
Set WshShell = CreateObject("WScript.Shell")
For each location in myArray
Call RoboCopy
WshShell.Run "cmd /c " & rcmd, 0, True
Next