2

У меня есть маленький скрипт, который я запускаю время от времени, у него никогда не было проблем. Я на Windows 7 и использовал его здесь. Он опирается на WScript.Ракушка.

Пару дней назад я запустил его, и он вернул следующее сообщение:

---------------------------
wscript.exe - Bad Image
---------------------------
C:\Windows\system32\wshom.ocx is either not designed to run on Windows
or it contains an error. Try installing the program again using the original
installation media or contact your system administrator or the software vendor
for support. 
---------------------------
OK   
---------------------------

Далее следует ошибка WScript:

---------------------------
Windows Script Host
---------------------------
Script: C:\tools\videoconverter.vbs
Line:   9
Char:   1
Error:  Could not create object named "WScript.Shell".
Code:   800700C1
Source:     WScript.CreateObject

---------------------------
OK   
---------------------------

Я пробовал следующее:

  • Сделал чистую загрузку со всеми отключенными службами не MS. Все та же ошибка.
  • Когда я пытался зарегистрировать wshom.ocx, я получаю

[Название окна]
RegSvr32

[Содержание]
Модуль "C:\Windows\system32\wshom.ocx" может быть несовместим с используемой версией Windows. Проверьте, совместим ли модуль с x86 (32-разрядной) или x64 (64-разрядной) версией regsvr32.exe.

[ХОРОШО]

Моя версия Windows - x86. Как узнать, с какой версией Wshom.ocx совместим?На самом деле, хотя как это может быть несовместимо, учитывая, что это было совместимо в последнее время в прошлом?

Отредактировано: добавление в скрипт:

infolder = "c:\tools\music_input"
outfolder = "c:\tools\music_output"

Dim objFSO
Dim ofolder
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("scripting.filesystemobject")
Dim objCurrentFolder
Set objCurrentFolder =  objFSO.getfolder(infolder)
Dim tempval   
Dim nFile
For Each file In objCurrentFolder.Files

nFile = outfolder & "\" &  file.Name & ".mp3"

If objFSO.FileExists(nFile) Then

Else
tempval = "c:\tools\ffmpeg\bin\ffmpeg.exe -i " &  chr(34)  & file & chr(34) & " " &    
chr(34) &  nFile & chr(34)

WshShell.Run tempval
WScript.Sleep 15000
End If                
Next

1 ответ1

0

Брайан, что произойдет, если вы запустите

    Dim WshShell
    Set WshShell = WScript.CreateObject("WScript.Shell")

    If Err <> 0 Then
    Wscript.Echo Err.Number & " -- " &  Err.Description
    Err.Clear
    End If

Благодарю.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .