warezoogle3
Новичок
- Сообщения
- 73
- Репутация
- 1
Здравствуйте,уважаемые!
Недавно начал учить VBScript и AutoIT! Пока в этом деле новичок.
Но по работе понадобилось использовать их.
В общем нашел один VBS скрипт,который устанавливает шрифты без перезагрузки.
Вот код VBS:
Попытался конвертировать в AutoIT
Вот что получилось:
Но вот конвертация регулярных выражений неосилил. Пожалуйста помогите! Что я делаю не так?
Думаю,что в главная ошибка в
Помогите пожалуйста! Заранее огромное спасибо!
Недавно начал учить VBScript и AutoIT! Пока в этом деле новичок.
Но по работе понадобилось использовать их.
В общем нашел один VBS скрипт,который устанавливает шрифты без перезагрузки.
Вот код VBS:
Код:
Const FONTS = &H14&
Set objShell = CreateObject("Shell.Application")
Set ofso = CreateObject("Scripting.FileSystemObject")
SourceFolder = ofso.GetParentFolderName(Wscript.ScriptFullName)
Set oSource = objShell.Namespace(SourceFolder)
Set oWinFonts = objShell.Namespace(FONTS)
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Pattern = "([\w\s]+?)(_[^_]*)?(\.(ttf|otf|pfm|fon))$"
FOR EACH FontFile IN oSource.Items()
fontFileName = ofso.GetFileName(FontFile.Path)
IF regEx.Test(fontFileName) THEN
Set objMatch = regEx.Execute(fontFileName)
win7FontFileName = objMatch.Item(0).Submatches(0) & objMatch.Item(0).Submatches(2)
localFontPath = oWinFonts.Self.Path & "\" & fontFileName
win7LocalFontPath = oWinFonts.Self.Path & "\" & win7FontFileName
IF NOT ofso.FileExists(localFontPath) AND NOT ofso.FileExists(win7LocalFontPath) THEN
oWinFonts.CopyHere FontFile.Path
END IF
END IF
NEXT
Попытался конвертировать в AutoIT
Вот что получилось:
Код:
Const $FONTS = 0x14
Local $objShell = ObjCreate("Shell.Application")
Local $ofso = ObjCreate("Scripting.FileSystemObject")
Local $SourceFolder = $ofso.GetParentFolderName(@ScriptFullPath)
Local $oSource = $objShell.Namespace($SourceFolder)
Local $oWinFonts = $objShell.Namespace($FONTS)
$regEx = $New $RegExp
$regEx.IgnoreCase = 1
$regEx.Pattern = "([\w\s]+?)(_[^_]*)?(\.(ttf|otf|pfm|fon))$"
For $FontFile IN $oSource.Items()
$fontFileName = $ofso.GetFileName($FontFile.Path)
IF $regEx.Test($fontFileName) THEN
$objMatch = $regEx.Execute($fontFileName)
$win7FontFileName = $objMatch.Item(0).Submatches(0) & $objMatch.Item(0).Submatches(2)
$localFontPath = $oWinFonts.Self.Path & "\" & $fontFileName
$win7LocalFontPath = $oWinFonts.Self.Path & "\" & $win7FontFileName
IF NOT $ofso.FileExists($localFontPath) AND NOT $ofso.FileExists($win7LocalFontPath) THEN
$oWinFonts.CopyHere ($FontFile.Path)
EndIf
EndIf
NEXT
Но вот конвертация регулярных выражений неосилил. Пожалуйста помогите! Что я делаю не так?
Думаю,что в главная ошибка в
Код:
$regEx = $New $RegExp
$regEx.IgnoreCase = 1
$regEx.Pattern = "([\w\s]+?)(_[^_]*)?(\.(ttf|otf|pfm|fon))$"
Помогите пожалуйста! Заранее огромное спасибо!