VB6: выполнить две команды через Shell

Я пытаюсь выполнить две команды через команду vb6 Shell. две команды были разделены строкой " && ". вот что я хочу выполнить:

"D:\thepath\unzip.exe" -o -q "D:\7zipa.zip" -d"D:\7zipa_zip" && cmd /c echo Hi>C:\Users\AmirrezA\AppData\Local\Temp\UZP.txt

Когда выполняется вторая команда, она известна как часть «D:\thepath\unzip.exe», но когда я пытаюсь выполнить ту же строку выше через командную строку Windows, проблем нет. Что не так со строкой выше, которую нельзя выполнить через функцию оболочки VB6?


person Amirreza Nasiri    schedule 22.03.2014    source источник
comment
Самый простой способ сделать это — создать пакетный файл (.bat) с несколькими командами в нем. Затем запустите пакетный файл из VB6.   -  person George Mastros    schedule 22.03.2014


Ответы (1)


Функция VB6 Shell() представляет собой тонкую оболочку CreateProcess() и вообще не использует "оболочку". CreateProcess() не понимает синтаксис команды CMD.EXE и работает на гораздо более низком уровне.

Чтобы сделать то, что вы, кажется, хотите, вы должны использовать Shell() для запуска экземпляра «старого жирного CMD.EXE» (командная оболочка) и передавать ему свои команды.

person Bob77    schedule 22.03.2014