Во время установки PostgreSQL 9.1.2 на моем Windows 7 64-bit Home Premium установка зависла.После долгого яростного поиска я обнаружил, что проблема заключалась в том, что установщик VB Script завис в ожидании завершения пакетного файла в скрытом окне.
Я выделил проблему в следующую строку кода:
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "hello.bat", 1, True
(где 1
устанавливает WindowStyle на Visible, а True
ожидает завершения).Вызов Run
запустил командную строку, но не выполнил командный файл.Таким образом, это никогда не будет завершено.
Я решил проблему, запустив cmd.exe вместо командного файла напрямую, согласно многочисленным онлайн-источникам:
objShell.Run "%COMSPEC% /c hello.bat", 1, True
Поскольку исправление скрыто в установщике PostgreSQL (и яМы отправили отчет об ошибке ), я могу только обойти проблему, если не будет изменен установщик.
Но мои основные вопросы:
- Почему первый звонок зависает?
- Зачем использовать% COMSPEC% вместо непосредственного вызова пакета?
Что касается # 2, может ли это быть из-за того, что выполнение .bat напрямую предполагает, что действие по умолчанию связанос файлом .bat это выполнить?В прошлом (на других машинах) я изменял это действие по умолчанию на «Редактировать».И если бы я это сделал, я бы также повесил установщик PostgreSQL!(Я представляю)
Пакетный файл выполняется нормально на других машинах.Так что на этом ноутбуке есть что-то странное.Что касается № 1, мне нужно выяснить, почему этот ноутбук отличается.Я должен отметить, что на этой машине есть некоторые странные поведения с пакетными файлами (которые я только что заметил):
- Действия контекстного меню содержат только «Открыть» и отсутствуют «Редактировать», «Выполнить»"," Запуск от имени "
- Двойной щелчок командного файла открывает командную строку, но не выполняет командный файл
I , просто заметил # 2, покапишу это.Очевидно, что действие по умолчанию для .bat испорчено.Вчера я чуть не забил свой компьютер, удалив обработчики контекстного меню из своего реестра, как рекомендовали несколько сайтов, пытаясь восстановить мои записи «Редактировать», «Выполнить» и т. Д.
Буду признателен за любые советы по вопросам 1 и 2.,
Спасибо, Эрик