Во время установки PostgreSQL 9.1.2 на моем 64-разрядном домашнем компьютере Windows Vista установка висела. После долгого яростного поиска я обнаружил, что проблема заключается в том, что установщик VB Script был виден, ожидая завершения пакетного файла в скрытом окне.VBScript зависает при запуске командного файла с запуском WShell.Script
Я изолировали проблему в следующей строке кода:
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "hello.bat", 1, True
(где наборы 1
WindowStyle Видимый и True
ждет завершения). Вызов Run
запустил командную строку, но не выполнял командный файл. Таким образом, он никогда не завершится.
Я решил проблему, запустив cmd.exe вместо пакетного файла напрямую, по многочисленным интернет-источников:
objShell.Run "%COMSPEC% /c hello.bat", 1, True
Поскольку исправление похоронен в инсталлятор PostgreSQL (и я представил bug report), Я могу только work around проблемы, если установщик не будет изменен.
Но мои главные вопросы:
- Почему повесить первый звонок?
- Зачем использовать% COMSPEC% вместо прямого вызова партии?
Что касается №2, может быть, это связано с тем, что выполнение .bat делает предположение, что действие по умолчанию, связанное с файлом .bat, должно выполнить его? Я в прошлом (на других машинах) изменил это действие по умолчанию на «Редактировать». И если бы я это сделал, я бы повесил установщик PostgreSQL! (Я полагаю)
Пакетный файл обычно выполняется на других машинах. Так что на этом одном ноутбуке есть что-то странное. Поэтому в отношении №1 мне нужно выяснить, почему этот ноутбук отличается. Я хотел бы отметить, что есть некоторые странное поведение с помощью пакетных файлов на этой машине (один, который я только что заметил):
- Действия контекстного меню содержат только «Открыть» и не хватает «Edit», «Run», " Run As»
- Двойной щелчок пакетный файл открывает командную строку, но не выполняет пакетный файл
Я только заметил # 2 во время написания этого. Очевидно, что действие по умолчанию для .bat испорчено. Вчера я чуть ли не скомпоновал мой компьютер, удаляя обработчики контекстного меню из моего реестра, как рекомендовано несколькими сайтами, пытающимися восстановить мои записи «Изменить», «Запустить» и т. Д.
Любые советы по вопросам 1 и 2 будут оценены по достоинству.
Спасибо, Эрик
Я решил проблему и опубликует ответ через 7 часов (новый пользователь, извините). В основном мне пришлось удалить этот ключ: HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .bat, как указано [здесь] (http://help.lockergnome.com/windows/BAT-File-Association-Broken- -ftopict514456.html) – cod3monk3y