wshshell.run не может найти файл - PullRequest
2 голосов
/ 15 декабря 2011

Из командной строки я могу запустить

oradim.exe -delete -sid DataWare

Он у меня на пути, поэтому я могу сделать это из любого места (я проверял это)

Что не получается

oraCMD = "oradim.exe -delete -sid DataWare"
errCMD = wshShell.exec(oraCMD)

if errCMD <> 0 Then
    msgbox "ERROR: " & errCMD
    wscript.quit
end if

В этой конфигурации я получаю ошибку «Объект не поддерживает это свойство или метод».Если я использую .run вместо .exec, я получаю «Система не может найти указанный файл».

Есть идеи?

Ответы [ 3 ]

1 голос
/ 27 декабря 2011

Что решило проблему, вызвав CMD в командной строке

oraCMD = "CMD /c oradim.exe -delete -sid"
1 голос
/ 15 декабря 2011

Ваш код смешивает .Run (возвращает числовой код ошибки) и .Exec (возвращает объект и требует назначения с помощью Set). Если процесс, запущенный WSHShell, не может найти oradim, то этот процесс не получил PATH оболочки, которую вы использовали для тестирования. Как вы начали. VBS? Простой выход: укажите полный путь к oradim.exe.

Если подумать: не забудьте процитировать спецификацию файла, если она содержит пробелы:

oraCMD = """c:\program files\ora labora\oradim.exe"" -delete -sid DataWare"
0 голосов
/ 19 декабря 2011

Вы пробовали errCMD = wshShell.run (oraCMD)?

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