使用VBS在后台运行批处理文件,继续获取"找不到文件"

时间:2012-10-15 17:26:16

标签: shell vbscript arguments

我正在尝试运行使用VBS隐藏的批处理文件。 我一直在寻找高低,但无论我做什么,我都无法让我的工作:(

这是我的代码:

If WScript.Arguments.Item(2) = "TV" Then
Set WShShell = WScript.CreateObject("WScript.Shell")
WShShell.Run "extractscipt.bat " & chr(34) & WScript.Arguments.Item(0) & chr(34) & " " & chr(34) & WScript.Arguments.Item(1) & chr(34) & " " & chr(34) & WScript.Arguments.Item(2) & chr(34), 0
    Set WShShell = Nothing
End If

我不断收到的错误说“找不到档案”。

我的bat文件本身运行完美,我只使用这个VB脚本来隐藏命令窗口。 我包含的两个参数是路径所以我需要引用它们:) 我希望你能帮助我。

这是我的extractcript.bat文件的内容:

set fromdir=%1
set name=%2
set label=%3
set todir=F:\%name%

if %label%==EXTRACT (
if not exist %todir% mkdir %todir%
"C:\Program Files\7-Zip\7z.exe" x "%fromdir%\*.rar" -o"%todir%"
exit
)
exit

如果您对如何在一个隐藏程序中合并这两个文件有任何想法,也可以接受;)


EDIT / UPDATE

所以事实证明我需要添加完整路径,我在代码中也发现了一些错误。我没有添加chr(34)(“),只是搞砸了:) 这是我正在使用的工作代码,以防有人也需要这个答案:)

If WScript.Arguments.Item(2) = "TV" Then
    Set WShShell = WScript.CreateObject("WScript.Shell")
    WShShell.Run """C:\Program Files (x86)\uTorrent\extractscript.bat"" "& WScript.Arguments.Item(0) & " " & WScript.Arguments.Item(1) & " " & WScript.Arguments.Item(2), 0
    Set WShShell = Nothing
End If

0 个答案:

没有答案