#vba #shell #cmd
#vba #оболочка #cmd
Вопрос:
Я использую следующий код, и он работает нормально.
path = "cd C:Program Filesbin amp; AppX File.txt"
Call Shell("cmd.exe /k " amp; path, vbNormalFocus)
Однако мне приходится использовать waitOnreturn, поэтому я перешел на следующий код, и он больше не работает.
path = "cd C:Program Filesbin amp; AppX File.txt"
Dim wsh As Object
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
Set wsh = VBA.CreateObject("WScript.Shell")
wsh.Run ("cmd.exe /k " amp; path amp; ", windowStyle, waitOnReturn")
Ошибка «не удалось прочитать файл»File.txt «: нет такого файла или каталога «, но файл есть.
Имя файлаFile.txt.
Имя программы — AppX. Программа позволяет мне запускать файл с помощью cmd.exe если я сначала изменю направление на путь AppX. Затем, чтобы запустить файл с помощью cmd.exe Мне нужно запустить «AppX File.txt »
Есть ли что-то, что работает с WScript.Код оболочки
Комментарии:
1.
1
иtrue
являются аргументамиrun
метода, а не частью командной строки2. Спасибо, я изменил их, но у меня все та же ошибка.
3. @MCND Я думаю, я понял, что вы имеете в виду, я меняю его на wsh.Run «cmd.exe /k » amp; path, WindowStyle, ожидание возврата . Теперь это работает, спасибо
Ответ №1:
Поскольку в имени файла есть пробелы, вам необходимо заключить путь в кавычки. Так что что-то вроде:
path = "cd "C:Program Filesbin amp; AppX File.txt""
Комментарии:
1. Спасибо, к сожалению, это не сработало. Имя файла — это только File.txt . В ней нет места. Я отредактировал свой вопрос.
Ответ №2:
Я изменил
wsh.Run ("cmd.exe /k " amp; path amp; ", windowStyle, waitOnReturn")
Для
wsh.Run "cmd.exe /k " amp; path, windowStyle, waitOnReturn
и сейчас это работает